最大子列和问题。这个问题的具体分析,我在之前写的比较详细,现在就把leetcode的代码加上。运行时间是O(n),用的是C所以跑得非常快。其实leetcode只要求写一个函数就可以了,我下面的代码是完整的C代码。
#include<stdio.h>
int maxSubArray(int A[], int n) {
int maxSum, sum, i;
sum = 0;
maxSum = A[0];
for(i = 0; i < n; i++){
sum += A[i];
if(sum > maxSum)
maxSum = sum;
if(sum < 0)
sum = 0;
}
return maxSum;
}
int main(){
int n;
scanf("%d", &n);
int i, A[n];
for(i = 0;i<n;i++){
scanf("%d", &A[i]);
}
int s;
s = maxSubArray(A, n);
printf("%d\n", s);
}