标签:
这道题需要明确一个思路,如果最终最大解的区间是i,j,那么,对于i和j中任一一个值k,有这样的性质,从i到k的和一定不能小于0。知道这个性质后,程序就比较简单了。
class Solution { public: int maxSubArray(int A[], int n) { if(n==0) return 0; int max=A[0],sum=0; for(int i=0;i<n;i++) { sum += A[i]; if(sum<0) { sum = 0; if(A[i]>max) max = A[i]; } else if(sum>=0) { max = sum>max?sum:max; } } return max; } };
标签:
原文地址:http://www.cnblogs.com/ZhangYushuang/p/4336258.html