Skip to content

Instantly share code, notes, and snippets.

@pdu
Created February 17, 2013 13:24
Show Gist options
  • Select an option

  • Save pdu/4971477 to your computer and use it in GitHub Desktop.

Select an option

Save pdu/4971477 to your computer and use it in GitHub Desktop.
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. More practice: If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, whi…
class Solution {
public:
int maxSubArray(int A[], int n) {
if (n == 0)
return 0;
int ret = A[0];
int sum = 0;
for (int i = 0; i < n; ++i) {
sum += A[i];
ret = max(sum, ret);
if (sum < 0)
sum = 0;
}
return ret;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment