题目
思路就是:所有的值的遍历,太麻烦,不如全部加在一起再去除前面的。
class Solution:
def maxSubArrayLen(self, nums: List[int], k: int) -> int:
lookup = {0: -1}#用字典表示
cur = 0
res = 0
for idx, val in enumerate(nums):
cur += val #累加
if cur - k in lookup: #在字典里,下面坐标减去之前累加的最高坐标
res = max(res, idx - lookup[cur - k])
# 记录前面和的最小位置,所以说存在数值就不改变
if cur not in lookup:#不在里面,累加和对应相应坐标
lookup[cur] = idx
return res