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