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的很多函数还是不太熟悉哈哈哈