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

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

http://www.nowcoder.com/practice/ba3c096c19e04afbbbd59250e909ac68

#include<iostream>
#include<algorithm>
using namespace std;
int price[100000], dp[200005][201] = { 0 };
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n,k;
    cin >> n >> k;
    for (int i = 0; i < n; ++i)
        cin >> price[i];
    for(int i = 0;i < k;++i)
        dp[0][2 * i + 1] = -price[0];
    for (int i = 1; i < n; ++i) {
        dp[i][0] = dp[i - 1][0];
        dp[i][1] = max(dp[i - 1][1], - price[i]);
        for(int j = 2;j <= 2 * k;++j)
            dp[i][j] = max(dp[i - 1][j], dp[i][j - 1] + (j % 2 == 0 ? price[i] : -price[i]));
    }
    cout << dp[n - 1][2 * k];
}
全部评论
用例2有问题吧,难道不应该是9嘛
点赞 回复 分享
发布于 2022-03-24 22:32

相关推荐

走不到的路就这样算了吗:大佬硬气
点赞 评论 收藏
分享
10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务