最大子序和
简单的线性规划
- https://leetcode-cn.com/problems/maximum-subarray/
- $dp[i]$代表以当前数结尾的序列最大和
- 转移方程是$dp[i]=max{dp[i-1]+xi , xi}$
- 动态规划代码$O(n)$
class Solution
{
public:
int maxSubArray(vector<int> &nums)
{
int dp[nums.size()];
int maxn = nums[0];
for (int i = 0; i < nums.size();i++)
{
if(i==0)
{
dp[i] = nums[i];
continue;
}
dp[i] = dp[i - 1] + nums[i] > nums[i] ? dp[i - 1] + nums[i] : nums[i];
if(dp[i]>maxn)
{
maxn = dp[i];
}
}
return maxn;
}
};

浙公网安备 33010602011771号