1. 程式人生 > >最大子數組和

最大子數組和

題目 pac OS int vector CI ... namespace 最大子數組和

題目描述

給定一個數組a[0,...,n-1],求其最大子數組(長度>=1)和


輸入描述

第一行一個整數n(1<=n<=5000),然後依次輸入n個整數(每個整數範圍[-5000, 5000])


輸出描述

輸出一個整數表示最大子數組和


樣例輸入

5
1 -1 1 1 -1


樣例輸出

2
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n = 0;
do{
cin>>n;
}while(n<1||n>5000);
vector<int>arr(n);
for(int i=0;i<n;i++){
do{
cin>>arr[i];
}while(arr[i]<-5000||arr[i]>5000);
}
int sum=0;
int max=0;
for(int i=0;i<arr.size();i++){
sum = 0;
for(int j=i;j<arr.size();j++){
sum+=arr[j];
if(sum>max)
max=sum;
}
}
cout<<max<<endl;
return 0;
}

最大子數組和