给定长度为2n的自然数列表nums,把这些数分成n对,把每一对的最小值加起来(不同的分法,其和可能不同),输出最小值和的最大值。

给定长度为2n的自然数列表nums,把这些数分成n对,把每一对的最小值加起来(不同的分法,其和可能不同),输出最小值和的最大值。

可以先用个循环给他分开一个二维数组么,然后如下,跟别取出一个来进行取大小(max,min),按顺序取

a=[5,2,6,7,2,9,5,8]
b=[]
k=0
min_ = 0
for i in range(int(len(a)/2)):
    b.append(a[k:(k+2)])
    k+=2
for j in range(len(b)):
    min_ += min(b[j])
print(min_)

若果有用,请点采纳哦


import random

l = [1, 2, 3, 4]
random.shuffle(l)
min_l = 0
max_l = 0
for i in range(0, len(l), 2):
    print(l[i], l[i + 1])
    min_l = min_l + min(l[i], l[i + 1])
    max_l = max_l + max(l[i], l[i + 1])
print("最小值:", min_l)
print("最大值:", max_l)

如有帮助,希望点一下采纳

最小值应该是sum(sorted(nums)[:n])
最大值应该是sum(sorted(nums)[::2])

img