给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。
注意事项
子数组最少包含一个数
看到这个题以为很简单,但其实有些难,一开始死活想不出来怎么做是太过于纠结判断子数组的范围了,然而这道题是求最大子数组的和,看到标签上写了贪心算法,就仔细学了一下,设置变量sum来代表数组元素相加的和,当sum小于0时就清sum为0
int length = a.size() ;
int i,j;
int sum = 0, temp = -1111111;
for(int i = 0;i < length;i++)
{
sum += a[i];
if(sum > temp)
{
temp = sum;
}
if(sum < 0)
{
sum = 0;
}
}
return temp;
825

被折叠的 条评论
为什么被折叠?



