博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Best Time to Buy and Sell Stock IV
阅读量:6759 次
发布时间:2019-06-26

本文共 1228 字,大约阅读时间需要 4 分钟。

An extension of Best Time to Buy and Sell Stock III. The idea is still to use dynamic programming (see for detailed introduction). However, in this problem, some trick (the quickProfit function below) is required to pass the TLE.

The code is rewritten below.

1 class Solution { 2 public: 3     int maxProfit(int k, vector
& prices) { 4 int n = prices.size(); 5 if (k >= n / 2) return quickProfit(prices); 6 vector
> dp(k + 1, vector
(n, 0)); 7 for (int i = 1; i <= k; i++) { 8 int temp = dp[i - 1][0] - prices[0]; 9 for (int j = 1; j < n; j++) {10 dp[i][j] = max(dp[i][j - 1], prices[j] + temp);11 temp = max(temp, dp[i - 1][j] - prices[j]);12 }13 }14 return dp[k][n - 1];15 }16 private:17 int quickProfit(vector
& prices) {18 int n = prices.size(), profit = 0;19 for (int i = 1; i < n; i++)20 if (prices[i] > prices[i - 1])21 profit += prices[i] - prices[i - 1];22 return profit;23 }24 };

 

转载于:https://www.cnblogs.com/jcliBlogger/p/4702587.html

你可能感兴趣的文章
浅析NTFS 文件系统数据流安全问题
查看>>
Smart Device Framework 2.2 发布了
查看>>
Humble Numbers soj1029
查看>>
程序员技术练级攻略
查看>>
ls只显示文件名/只显示文件夹名
查看>>
Java并发编程:同步容器
查看>>
水晶报表之动态列--简化版实现
查看>>
验证控件的使用四( RangeValidator)
查看>>
网络编程(一):用C#下载网络文件的2种方法
查看>>
复制graphic
查看>>
基于NopCommerce的开源电商系统改造总结
查看>>
JavaScript是怎样让互联网变慢的(及对策)
查看>>
诺基亚预装WIN8系统的LUMIA平板真机曝光-应用电台
查看>>
遇见C++ PPL:C++ 的并行和异步
查看>>
软件开发中关于向后兼容的理解
查看>>
ios开发之 MPMoviePlayerController 视频播放器
查看>>
count(*)、count(val)和count(1)的解释
查看>>
[Leetcode] Largest Rectangle in Histogram
查看>>
final (Java)
查看>>
The Master of Science degree in Computer Scienc
查看>>