为什么这样会wa和re
#include<bits/stdc++.h>
using namespace std;
int n,dp[100010],a,maxx=-99999999;
int main(){
cin>>n;
cin>>dp[1];
for(int i=2;i<=n;i++){
cin>>a;
dp[i]=max(dp[i-1]+a,a);
maxx=max(maxx,dp[i]);
}
cout<<maxx;
return 0;
}
而这样不会
#include<bits/stdc++.h>
using namespace std;
int n,dp[1000010],a,maxx=-999999999;//dp数组多加了一个0,maxx多加了一个9
int main(){
cin>>n;
cin>>dp[1];
for(int i=2;i<=n;i++){
cin>>a;
dp[i]=max(dp[i-1]+a,a);
maxx=max(maxx,dp[i]);
}
cout<<maxx;
return 0;
}
感觉上一个数组没开小啊,maxx开大了有用吗?