给定一个无序数组arr, 其中元素可正、可负、可0。给定一个整数k,求arr所有子数组中累加和为k的最长子数组长度
循环遍历每个数字,记录累加结果,找到sums-k
while True: try: n, k = map(int,input().split()) inputs = list(map(int,input().split())) sums = 0 res = 0 dict = {0:-1} for i in range(n): sums+=inputs[i] if sums not in dict: dict[sums]=i if sums-k in dict: res=max(res,i-dict[sums-k]) print(res) except:break