由此,我们从第1天(下标为0)开始,画出全部的状态转换图,如下: 该图中,每一条从0到n的路径表示一种可能的交易方式,则该状态转换图包含了全部可能的交易方式。这就是解空间,有了它我们才能想办法在其中求一个最大值,接下来就是动态规划的内容了。 二,动态规划 上一段中的状态好理解,但是在程序中如何表示和...
给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。 你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0。
然后sell往后移, 若prices[sell] < prices[buy],则将buy指向sell当前位置(buy = sell),否则计算当前股票买卖收益,并和之前计算的收益比较,取最大的值。 1//双指针法求股票买卖最佳时机问题23intmaxProfit_doublePtr(vector<int>&prices)4{5intbuy=0,sell=0;6intmaxProfit =0;7for(;sell<prices.size();++...
其实这里还有一种思路,就是贪心法,只要当天的价格高于前一天的,就算入收益。 intmaxProfit=0;for(inti=1;i<prices.length;i++){if(prices[i]>prices[i-1])maxProfit+=prices[i]-prices[i-1];}returnmaxProfit; 3. BestTimetoBuyandSellStock 3 这里限制最多只能进行2次交易。 第一次我的想法就是,这个...
309. Best Time to Buy and Sell Stock with Cooldown 714. Best Time to Buy and Sell Stock with Transaction Fee 以上每个问题,其实都有各自解法。而本文将总结上述所有问题的通用解法。 1. 一般情况 首先考虑这样一个问题: 给定一个每日股价的数组,怎么样获得最大利润?
https://leetcode.com/problems/best-time-to-buy-and-sell-stock/解题思路1. 暴力 O(n^2) 复杂度,超时class Solution { public: int maxProfit(vector<int>& prices) { int maxVal = 0; int n = price…
length; sell++) { //出现下跌 if (prices[sell] < prices[sell - 1]) { //不是第 2 天下跌,就前一天卖出,累计收益 if (sell != 1) { profit += prices[sell - 1] - prices[buy]; } //下跌当天再次买入 buy = sell; //到最后一天是上涨,那就在最后一天卖出 } else if (sell == ...
【刷题笔记】121. Best Time to Buy and Sell Stock 题目 Say you have an array for which theith element is the price of a given stock on dayi. If you were only permitted to complete at most one transaction (i.e., buy one and sell one share of the stock), design an algorithm to ...
package BestTimeToBuyAndSellStock.VersionIV; @SuppressWarnings("Duplicates") class Solution { private int quickSolve(int[] prices) { int len = prices.length, profit = 0; for (int i = 1; i < len; i++) { // as long as there is a price gap, we gain a profit. ...
https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/ classSolution:defmaxProfit(self,prices:List[int])->int:l,r=0,1profit=0whiler<len(prices):ifprices[l]<=prices[r]:p=prices[r]-prices[l]profit=max(profit,p)r+=1else:l+=1returnprofit...