leetcode 最大子序和

匿名 (未验证) 提交于 2019-12-03 00:21:02

状态:dp[i]表示以第i个元素结尾的连续子数组的最大和

状态转移方程:

dp[i] = max( 0, dp[i-1] ) + nums[i];

#include <vector> using namespace std; class Solution { public:     int maxSubArray(vector<int>& nums)     {         int n = nums.size();         vector<int> dp(n+1,0);         if( nums[0] > 0 )             dp[0] = nums[0];         else             dp[0] = 0;        for( int i = 1; i < n; i++ )        {            dp[i] = max( 0, dp[i-1] ) + nums[i];        }        int ans = dp[0];        for( int i = 0; i < n; i++ )         ans = min( ans, dp[i] );        return ans;     } }; 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!