Maximum Subarray

来源:互联网 发布:网络视频营销策略 编辑:程序博客网 时间:2024/06/11 13:31

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.

class Solution {public:    int maxSubArray(int A[], int n) {         int preMaxSum = 0;         int sum = 0 ;         for(int i=0;i<n;++i){             if(0==i){                 sum = A[i];                 preMaxSum = A[i];                 continue;             }             sum = max(A[i],max(sum,preMaxSum+A[i]));             preMaxSum = max(A[i],preMaxSum+A[i]);         }         return sum;    }};

0 0