题解 | #买卖股票的最好时机(三)#

买卖股票的最好时机(三)

http://www.nowcoder.com/practice/2fea2b0349df4f7689f6f5a882e4f129

```#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin >> n;
    vector<int> prices(n,0);
    for(int i = 0;i < n;i++)
    {
        cin >> prices[i];
    }
    vector<vector<int> >dp(n,vector<int>(5,0));
    dp[0][0] = 0;
    dp[0][1] = -prices[0];
    dp[0][2] = 0;
    dp[0][3] = -prices[0];
    dp[0][4] = 0;
    for(int i = 1;i<n;i++)
    {
        dp[i][1] = max(dp[i-1][1],dp[i-1][0]-prices[i]);
        dp[i][2] = max(dp[i-1][2],dp[i-1][1] + prices[i]);
        dp[i][3] = max(dp[i-1][3],dp[i-1][2]-prices[i]);
        dp[i][4] = max(dp[i-1][4],dp[i-1][3]+prices[i]);
    }
    if(dp[n-1][4])cout<<dp[n-1][4];
    else cout<<"0";
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务