给定一个数组,求最大的一段子段的和:
如: 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);
}