-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLeetcode Problem 53 Maximum Subarray.txt
More file actions
36 lines (28 loc) · 1.06 KB
/
Leetcode Problem 53 Maximum Subarray.txt
File metadata and controls
36 lines (28 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
53. Maximum Subarray
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
Example:
Input: [-2,1,-3,4,-1,2,1,-5,4],
Output: 6
Explanation: [4,-1,2,1] has the largest sum = 6.
Follow up:
If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.
Hint to solve: Maintain a globalMaxResult, counter for each element.
If the current element is greater than the counter reset the counter to current element.
If the globalMaxCounter is smaller than counter then reset the globalMaxCounter.
public class Solution {
public int MaxSubArray(int[] nums)
{
int globalMax = Int32.MinValue;
int counter = 0;
for(int i = 0; i<nums.Length; ++i)
{
int temp = counter + nums[i];
counter = temp > nums[i] ? temp : nums[i];
if(counter > globalMax)
{
globalMax = counter;
}
}
return globalMax;
}
}