给定一个无序数组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