título
1, a análise
começa com o primeiro conjunto de números mais, mais quando e após um número se torna negativo, em frente do conjunto é descartado, e a frente e não se torne um valor negativo para armazenada acumulada. Descrição sub-matriz é o próximo elemento a partir do início. Em seguida, voltar a adicionar de volta o próximo elemento desde o início, e temporário e salvo antes o maior e comparar.
2, o código
class Solution {
public:
int FindGreatestSumOfSubArray(vector<int> array) {
if(array.size()<=0)
return 0;
//最大的和用数组的第一个元素来进行初始化,防止数组的元素全为负数这种情况
int sum=array[0];
// 当前的和
int curSum=0
for(int i=0;i<array.size();++i)
{
if(curSum<=0)
{
curSum=array[i];
}
else
curSum+=array[i];
// 若当前的和大于之前保存的和,则进行替换
if(curSum>sum)
sum=curSum;
}
return sum;
}
};