首先,对于任意i天开始(注意是第i天开始,第i天的操作还没发生)的时候,有三种可能的状态: S0,手中没有股票,可以买;S1,手中有股票,可以卖;S2,手中没有股票,也不能买,即昨天刚卖,今天cooldown; 在这三种状态下,分别可以执行买卖等操作,即第i天的操作之后,到达第i+1天的状态,转换图如下: 由此,我们从第1...
分多次买入再卖出或者买入一次然后分多次卖出都是不允许的。 卖出以后有一天的时间不能交易 (one day cooldown time)。 交易次数不限。求可以获得的最大利润。 根据题意,画出DFA如下 每天可以采取的动作有3种: 什么也不干 买入 卖出 初始状态为idle,手头没有任何股票,且可以进行买入交易。 如果当天或之前有买入...
309. Best Time to Buy and Sell Stock with Cooldown # 题目 # 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 as many transactions as you li
解法1 参照leetcode 122, 解法几乎一样 但这里需要三个数组, sell: 每次卖出股票后自身的收益 buy: 每次买入股票后自身的收益 cooldown: 冷冻股票后自身的收益 根据题意很明显:cooldown[i] = sell[i-1] 因为题目说在卖出之后需要一个冷冻期 sell[i] = max( sell[i-1], buy[i-1] + prices[i] ) ...
/* * @lc app=leetcode id=309 lang=javascript * * [309] Best Time to Buy and Sell Stock with Cooldown * *//** * @param {number[]} prices * @return {number} */var maxProfit = function (prices) { if (prices == null || prices.length <= 1) return 0; // 定义状态变量 ...
309.Best Time to Buy and Sell Stock with Cooldown 题目: 给出n天股票的价格,求买卖的最大利润。规则: 可以买卖多次。但买入...
第一个:https://leetcode.com/problems/best-time-to-buy-and-sell-stock/?tab=Description 至多交易一次,返回最大利润。实质上是让求一个连续的子串,其最后一个元素和第一个元素只差最大。因为题目要求至多一次交易而不是必须一次,因此如果数组降序,可以选择不交易,所以理论上最小值是0,对应不...
【leetcode】45-best-time-to-buy-and-sell-stock-with-cooldown 力扣 714. 买卖股票的最佳时机包含手续费 开源地址 为了便于大家学习,所有实现均已开源。欢迎 fork + star~ https://github.com/houbb/leetcode 121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第...
动态规划:有点类似数学中的归纳总结法,找出状态转移方程,然后逐步求解。309. Best Time to Buy and Sell Stock with Cooldown是理解动态规划的一个不错的例子。 贪心算法:有时候只顾局部利益,最终也会有最好的全局收益。122. Best Time to Buy and Sell Stock II看看该如何“贪心”。
Find the maximum profit you can achieve. You may complete as many transactions as you like (i.e., buy one and sell one share of the stock multiple times) with the following restrictions: After you sell your stock, you cannot buy stock on the next day (i.e., cooldown one day). ...