n, m = list(map(int, input().split(" ")))
a = list(map(int, input().split(" ")))
b = list(map(int, input().split(" ")))
sum_a = sum(a)
minest = abs(b[0]-sum_a)
minlist = b[0]
for i in range(m):
for j in range(i+1, m+1):
if (abs(sum(b[i:j])-sum_a)) < minest:
minest = abs(sum(b[i:j])-sum_a)
minlist = b[i:j]
print(str(minlist).replace(",","").strip("[").strip("]"))
- 就从数组的第一个数开始取,然后对于子集的选取大家应该中学的时候都知道,依次往后遍历每一个元素即可
- 一开始的最小距离和离得最近的数组可以随便初始化一个值即可,这些步骤实际上可以封装成一个函数
- 最后这个数组的输出好像写复杂了,可能对python的很多函数还是不太熟悉哈哈哈

京公网安备 11010502036488号