Leetcode 325: Maximum Size Subarray Sum Equals k

Posted Keep walking

tags:

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

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?

 

 1 public class Solution {
 2     public int MaxSubArrayLen(int[] nums, int k) {
 3         var sums = new int[nums.Length];
 4         var sum = 0;
 5         var dict = new Dictionary<int, int>();
 6         
 7         for (int i = 0; i < nums.Length; i++)
 8         {
 9             sum += nums[i];
10             sums[i] = sum;
11         }
12         
13         int max = 0;
14         dict[0] = -1;
15         
16         for (int i = 0; i < sums.Length; i++)
17         {
18             var delta = sums[i] - k;
19             if (dict.ContainsKey(delta))
20             {
21                 max = Math.Max(max, i - dict[delta]);
22             }
23             
24             if (!dict.ContainsKey(sums[i]))
25             {
26                 dict[sums[i]] = i;
27             }
28         }
29         
30         return max;
31     }
32 }

 





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

325. Maximum Size Subarray Sum Equals k

325. Maximum Size Subarray Sum Equals k

325. Maximum Size Subarray Sum Equals k

325 Maximum Size Subarray Sum Equals k

Maximum Size Subarray Sum Equals k LT325

325. Maximum Size Subarray Sum Equals k 和等于k的最长子数组