C++ 算法实现:最大子列和问题 (含代码示例)
#include
int main() { int K; cin >> K; int nums[K]; for (int i = 0; i < K; i++) { cin >> nums[i]; }
int maxSum = 0; // 最大子列和
int thisSum = 0; // 当前子列和
for (int i = 0; i < K; i++) {
thisSum += nums[i]; // 将当前数字加入当前子列和
if (thisSum > maxSum) { // 如果当前子列和大于最大子列和,则更新最大子列和
maxSum = thisSum;
}
if (thisSum < 0) { // 如果当前子列和为负数,则将当前子列和置为0
thisSum = 0;
}
}
cout << maxSum << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/pzt2 著作权归作者所有。请勿转载和采集!