题目:最大子序列和
题意:
给定一个整数数组 nums
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6
#include <iostream>
#include<algorithm>
#include<string>
#include<map>
#include<cmath>
#include<cstring>
#include<vector>
#define ll long long
using namespace std;
const int N=101;
int dp[N];
int nums[N];
map<int, ll int>m1;
map<int,ll int>m2;
vector<int>v1;
vector<int>v2;
int main(int argc, const char * argv[]) {
int nums[]={-2,1,-3,4,-1,2,1,-5,4};
int tempsum = nums[0], maxsum = nums[0];
for(int i=1;i<9;i++)
{
if(tempsum < 0) {
tempsum = nums[i];
}
else{
tempsum += nums[i];
}
maxsum =max(tempsum,maxsum);
}
cout<<maxsum<<endl;
return 0;
}