#include<bits/stdc++.h> using namespace std; int a[100010],dp[100010]; int n,ans=0x7fffffff+1; //0x7fffffff是int 32位整型的最大值,+1之后变成最小值 int main(){ cin>>n; //首先将ans设置为最小值, //dp[i]表示前i个元素的子序列的最大序列和,每次确定完之后将ans更新为最大值 for(int i=1;i<=n;i++){ cin>>a[i]; dp[i]=max(dp[i-1]+a[i],a[i]); ans=max(dp[i],ans); } cout<<ans<<endl; return 0; }
#include<bits/stdc++.h> using namespace std; int n,a[100010]; int ans=0x7fffffff+1; int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } int sum=0; for(int i=0;i<n;i++){ if(sum+a[i]<0){ sum=0; }else{ sum+=a[i]; } ans=max(ans,sum); } cout<<ans<<endl; return 0; }
0.0分
0 人评分