LeetCode OJ 123 Best Time to Buy and Sell Stock III
来源:互联网 发布:js防水涂料价格 编辑:程序博客网 时间:2024/05/23 21:35
题目:
Say you have an array for which the ith element is the price of a given stock on day i.
Design an algorithm to find the maximum profit. You may complete at most k transactions.
Note:
You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
思路:先用II中贪心算法求解,讲贪心算法进行的交易数与k进行比较,如果小k<=贪心算法的交易数,直接返回贪心算法的结果,否则进行DP。递推公式参考
http://segmentfault.com/a/1190000002565570
代码如下
class Solution {public: int maxProfit(int k, vector<int>& prices) { if(prices.empty()||prices.size()<2) return 0; int maxProfit=0; int i=0; int time=0; while(i<prices.size()-1){ if(prices[i+1]>prices[i]){ maxProfit=maxProfit+prices[i+1]-prices[i]; time++; } i++; } if(time<=k) return maxProfit; int local[k+1][prices.size()]; int global[k+1][prices.size()]; for(int i=0;i<=k;i++) for(int j=0;j<prices.size();j++){ local[i][j]=0; global[i][j]=0; } for(int i=1;i<=k;i++){ for(int j=1;j<prices.size();j++){ int diff=prices[j]-prices[j-1]; local[i][j] = max(global[i-1][j-1],local[i][j-1]+diff); global[i][j] = max(global[i][j-1],local[i][j]); } } return global[k][prices.size()-1]; } };
0 0
- LeetCode OJ:Best Time to Buy and Sell Stock III
- LeetCode OJ - Best Time to Buy and Sell Stock III
- LeetCode 123: Best Time to Buy and Sell Stock III
- LeetCode: Best Time to Buy and Sell Stock III [123]
- LeetCode 123 Best Time to Buy and Sell Stock III
- [leetcode 123] Best Time to Buy and Sell Stock III
- leetcode || 123、Best Time to Buy and Sell Stock III
- leetcode-123 Best Time to Buy and Sell Stock III
- leetcode 123: Best Time to Buy and Sell Stock III
- 123 Best Time to Buy and Sell Stock III [Leetcode]
- Best Time to Buy and Sell Stock III - LeetCode 123
- LeetCode 123: Best Time to Buy and Sell Stock III
- LeetCode 123 Best Time to Buy and Sell Stock III
- LeetCode 123 -- Best Time to Buy and Sell Stock III
- Leetcode 123 Best Time to Buy and Sell Stock III
- LeetCode 123 Best Time to Buy and Sell Stock III
- Leetcode Best Time to Buy and Sell Stock III 123
- [Leetcode 123] Best Time to Buy and Sell Stock III
- json1
- 事件监听机制
- Java五子棋
- Android--sharepreference总结
- Java-2048
- LeetCode OJ 123 Best Time to Buy and Sell Stock III
- Php数据库操作
- C++库常用函数一览
- Php上传文件
- 线性表的顺序表示与实现
- T-SQL查询进阶
- Php网站建立
- colorAccent,colorPrimary,colorPrimaryDark
- Apache服务器编译安装与简单配置