c语言 求一个整型数组所有子数组中和值最大的 10
输入一个整型数组,其中有正有负,数组中连续的一个或多个整数构成一个子数组,求子数组中和值最大的子数组例如:3,2,-6,4,7,-3,5,-2和值最大的子数组为4,7,-...
输入一个整型数组,其中有正有负,数组中连续的一个或多个整数构成一个子数组,求子数组中和值最大的子数组
例如:3,2,-6,4,7,-3,5,-2和值最大的子数组为4,7,-3,5
求它的c语言代码!!!!!!!急急急急急急急急急急急急急!!!! 展开
例如:3,2,-6,4,7,-3,5,-2和值最大的子数组为4,7,-3,5
求它的c语言代码!!!!!!!急急急急急急急急急急急急急!!!! 展开
2个回答
展开全部
#include<stdio.h>
int MaxSum3(int * A,int n){//优化方案 时间O(n) 空间 O(1)
int nStart=A[n-1];
int nAll=A[n-1];
for(int i=n-2;i>=0;i--){
if(nStart<0)
nStart=0;
nStart+=A[i];
if(nStart>nAll)
nAll=nStart;
}
return nAll;
}
int main()
{
for(int i=0;i<N;i++){
scanf("%d",&A[I]);
}
printf("%d",MaxSum3(A,N));
return 0;
}
int MaxSum3(int * A,int n){//优化方案 时间O(n) 空间 O(1)
int nStart=A[n-1];
int nAll=A[n-1];
for(int i=n-2;i>=0;i--){
if(nStart<0)
nStart=0;
nStart+=A[i];
if(nStart>nAll)
nAll=nStart;
}
return nAll;
}
int main()
{
for(int i=0;i<N;i++){
scanf("%d",&A[I]);
}
printf("%d",MaxSum3(A,N));
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询