python
class Solution:
def maxSubArrayLen(self, nums: List[int], k: int):
n = len(nums)
needs = {0:[0]}
res = 0
preNum = 0
for i in range(1, n+1):
preNum += nums[i-1]
target = preNum - k
if target in needs.keys():
res = max(res, i-needs[target][0])
if preNum not in needs.keys():
needs[preNum] = [i]
else:
needs[preNum].append(i)
return res