最大子序列和
直接上O(n)
ll max_sum (int a[], int n) {
ll s = 0;
ll sum = 0;
for (int i = 0; i < n; i ++) {
if(sum >= 0)
sum += a[i];
else
sum = a[i];
if(sum > s)
s = sum;
}
return s;
}
本文介绍了一种求解最大子序列和问题的高效算法,采用O(n)的时间复杂度实现。通过一次遍历数组,利用动态规划思想更新当前和与最大和,适用于编程竞赛和技术面试。
ll max_sum (int a[], int n) {
ll s = 0;
ll sum = 0;
for (int i = 0; i < n; i ++) {
if(sum >= 0)
sum += a[i];
else
sum = a[i];
if(sum > s)
s = sum;
}
return s;
}
4603
1139

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