题意:
给你一个序列,求价值最大的连续序列。
思路:
dp,
状态方式:dp[i]表示以下标为i的元素为结尾的价值最大的连续序列。
状态转移方程:dp[i] = max(dp[i-1]+nums[i],nums[i]),,,,,下标为i的元素自成一个序列,或者加上以i-1为结尾的价值最大的连续序列。
代码:
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int n = nums.size();
if(n==0)
return 0;
int dp[n];
int maxx = nums[0];
dp[0] = nums[0];
for(int i = 1;i<n;i++)
{
dp[i] = max(nums[i],dp[i-1]+nums[i]);
maxx = max(maxx,dp[i]);
}
return maxx;
}
};