Maximum Size Subarray Sum Equals k
Given an arraynumsand a target valuek, find the maximum length of a subarray that sums tok. If there isn't one, return 0 instead.
Note: The sum of the entirenumsarray is guaranteed to fit within the 32-bit signed integer range.
Example 1:
Input:
nums
=
[1, -1, 5, -2, 3]
,
k
=
3
Output:
4
Explanation:
The subarray
[1, -1, 5, -2]
sums to 3 and is the longest.Example 2:
Input:
nums
=
[-2, -1, 2, 1]
,
k
=
1
Output:
2
Explanation:
The subarray
[-1, 2]
sums to 1 and is the longest.Follow Up: Can you do it in O(n) time?
分析
不用subsum数组,直接cursum+map,一遍loop,第一次遇到sum加入,后来的就算subsum == k。
注意这里subsum不含头,所以res=j-i就行,不用+1
Last updated
Was this helpful?