题解 | #牛牛的数组匹配#

牛牛的数组匹配

https://www.nowcoder.com/practice/3d3406f4a7eb4346b025cc592be5b875

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

相关推荐

评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务