0
点赞
收藏
分享

微信扫一扫

最大子段和(算法)


给定一个数组,求最大的一段子段的和:

如: num = {-5,12,3,-8,2,-9} 最大的子段和为9
int sum = 0;
for (int i = 0; i < N; i++) {
if(sum + num[i] < 0) {
sum = 0;//若sum小于0 那么之前的一段就不要了
} else {
sum += num[i];
}
ans = max(ans, sum);//ans保存每一次正数连续子串,有更大的就更新。
}

 

举报

相关推荐

0 条评论