-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy path53. Maximum Subarray.c
46 lines (31 loc) · 1.06 KB
/
53. Maximum Subarray.c
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
37
38
39
40
41
42
43
44
45
46
/*
53. Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1] has the largest sum = 6.
click to show more practice.
More practice:
If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.
*/
int maxSubArray(int* nums, int numsSize) {
int i, s, m = 0;
m = s = nums[0];
for (i = 1; i < numsSize; i ++) {
//printf("s: %d, m: %d\n", s, m);
if (s > 0) s += nums[i];
else s = nums[i];
if (m < s) m = s;
}
//printf("s: %d, m: %d\n", s, m);
return m;
}
/*
Difficulty:Easy
Total Accepted:216.1K
Total Submissions:546K
Companies LinkedIn Bloomberg Microsoft
Related Topics Array Dynamic Programming Divide and Conquer
Similar Questions
Best Time to Buy and Sell Stock
Maximum Product Subarray
*/