2025华为od机试真题B卷【数组排列求和 / 移动元素获得最大数组和】Python实现

目录

题目

思路

Code


题目

1到n的n个连续的数字组成一个数组,n为3的倍数。

每次按顺序从数组中取出3个元素,去掉这3个元素中的一个最大值和一个最小值,并将剩下的元素累计为S,S初始值为0。

可以通过调整数组中元素的位置改变最终结果,每移动一个元素计为移动一次。

请计算最少移动几次可以使得数组和S最大。

输入描述:
数组长度n的范围为[3, 600]

数组中数字范围[1, 10000]

数组由一个字符串表示,不同数字元素之间使用空格分隔

输出描述:
移动次数是一个自然数

无需移动,返回0

示例1:
输入
1 2 3

输出
0

说明
只有一个三元组[1,2,3],去掉最大最小值后剩下2,S=2。无需移动。

示例2
输入

3 8 9 7 4 2 5 6 1

输出
1

说明:

8+4+5=17
三个三元组:389->8,742->4,561->5,对应的S值为8+4+5=17
将7移动到56之间,三元组调整结果为389, 425, 761
389->8,425->4,761->6,8+4+6=18,18 是所有排列中的最大值,输出 1<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MISAYAONE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值