给出一个长度为n的整数列a,选出其中连续且非空的一段使得这段和最大。用C语言编写
时间: 2024-05-02 19:19:15 浏览: 98
C语言求连续最大子数组和的方法
5星 · 资源好评率100%
以下是C语言代码:
```
#include <stdio.h>
int main() {
int n, a[100000], prefixSum = 0, maxSum = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
prefixSum += a[i];
if (prefixSum < 0) {
prefixSum = 0;
}
if (prefixSum > maxSum) {
maxSum = prefixSum;
}
}
printf("%d\n", maxSum);
return 0;
}
```
以上代码使用前缀和思想,时间复杂度为O(n)。
阅读全文