Maximum Size Subarray Sum Equals k LT325

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maximum Size Subarray Sum Equals k LT325相关的知识,希望对你有一定的参考价值。

?????????instead   long   bit   ace   targe   example   min   fit   length   

Given an array nums and a target value k, find the maximum length of a subarray that sums to k. If there isn???t one, return 0 instead.

Note:
The sum of the entire nums array is guaranteed to fit within the 32-bit signed integer range.

Example 1:

Given nums = [1, -1, 5, -2, 3], k = 3,
return 4. (because the subarray [1, -1, 5, -2] sums to 3 and is the longest)

Example 2:

Given nums = [-2, -1, 2, 1], k = 1,
return 2. (because the subarray [-1, 2] sums to 1 and is the longest)

Follow Up:
Can you do it in O(n) time?

Idea 1. HashMap to store (prefixSum, the first index prefixSum ends) + prefix subarray sum.

Time complexity: O(n)

Space complexity: O(n)

 1 public class Solution {
 2     public int maxSubArrayLen(int[] nums, int k) {
 3         int maxLen = 0;
 4         Map<Integer, Integer> sumIndex = new HashMap<>();
 5         sumIndex.put(0, -1);
 6 
 7         int sum = 0;
 8         for(int i = 0; i < nums.length; ++i) {
 9             sum += nums[i];
10             Integer left = sumIndex.get(sum - k);
11             if(left != null) {
12                 maxLen = Math.max(maxLen, i - left);
13             }
14             sumIndex.putIfAbsent(sum, i);
15         }
16         return maxLen;
17     }
18 }




以上是关于Maximum Size Subarray Sum Equals k LT325的主要内容,如果未能解决你的问题,请参考以下文章

[Locked] Maximum Size Subarray Sum Equals k

325. Maximum Size Subarray Sum Equals k

325 Maximum Size Subarray Sum Equals k

LeetCode 325. Maximum Size Subarray Sum Equals k

Leetcode 325: Maximum Size Subarray Sum Equals k

Maximum Size Subarray Sum Equals k LT325