LeetCode 123. Best Time to Buy and Sell Stock III(动态规划)
来源:互联网 发布:网络互动直播新闻 编辑:程序博客网 时间:2024/06/03 13:55
LeetCode 123. Best Time to Buy and Sell Stock III(动态规划)
- LeetCode 123 Best Time to Buy and Sell Stock III动态规划
- 问题描述
- 解题思路
- 参考代码
- By Scarb
- Scarb’s Blog
Tags:
- Array
- Dynamic Programming
问题描述
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 two transactions.
Note:
You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
解题思路
题意是给你一组股票价格数组,进行两次买进卖出,问可能的最大获利是多少。
遍历这个数组,设每次的股价为i。
第二次卖掉后的钱 = max(第二次卖掉后的钱, 第二次买进后的钱 + i)
第二次买进后的钱 = max(第二次买进后的钱, 第一次卖掉后的钱 - i)
第一次卖掉后的钱 = max(第一次卖掉后的钱, 第一次买进后的钱 + i)
第一次买进后的钱 = max(第一次买进后的钱, -i)
最后得到一个最大的第二次卖掉后的钱就是最大获利
参考代码
#include <iostream>#include <vector>#include <algorithm> /* for max */using namespace std;class Solution {public: int maxProfit(vector<int>& prices) { int buy1 = INT_MIN, sell1 = 0; int buy2 = INT_MIN, sell2 = 0; for (int i : prices) { sell2 = max(sell2, buy2 + i); buy2 = max(buy2, sell1 - i); sell1 = max(sell1, buy1 + i); buy1 = max(buy1, -i); } return sell2; }};int main(){ vector<int> prices = { 3, 8, 5, 1, 7, 8 }; auto sl = new Solution(); cout << sl->maxProfit(prices) << endl; system("pause"); return 0;}
1 0
- 123.leetcode Best Time to Buy and Sell Stock III(hard)[动态规划算法 数组]
- LeetCode 123. Best Time to Buy and Sell Stock III| 动态规划
- LeetCode 123. Best Time to Buy and Sell Stock III(动态规划)
- Leetcode(W9):123. Best Time to Buy and Sell Stock III(动态规划)
- LeetCode动态规划思想:Best Time to Buy and Sell Stock III
- LeetCode--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】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 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
- SQL SERVER中事务的ACID
- Linux yum和apt-get的使用和区别
- uv位移动画
- 集合框架总结1
- Spring中Converter和Formatter的异同点
- LeetCode 123. Best Time to Buy and Sell Stock III(动态规划)
- jQuery中Ajax
- CodeForces
- 有向图的强连通分量(Tanjan)
- JDBC详解
- windows mysql命令导入数据库报错
- 27. Remove Element
- 集合框架总结2
- js中对象的创建