麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

123. Best Time to Buy and Sell Stock III(同小米風口的豬)

2019-11-11 06:50:23
字體:
來源:轉載
供稿:網友
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).

這道題實際上就是最大差值問題。之一更新最小值或最大值,以及當前最大差值即可。

這道題由于是兩次購入,所有分別從左右兩端求得然后相加即可。

class Solution {public: int maxProfit(vector<int>& prices) { int res = 0; const int size = prices.size(); if(size == 0) return res; vector<int> vec(size, 0); //從左往右計算vec[i](vec1[i])表示,第1..i+1天的最大收益,因為數組下標從零開始 int min = prices[0]; for(int i=1; i<size; ++i){ vec[i] = vec[i-1]; //如果收益沒有之前的多,至少要保持 if(prices[i] - min > vec[i]) //以當天為界限,計算之前的最大收益,所以是減 vec[i] = prices[i] - min; if(prices[i] < min) min = prices[i]; } //從右往左計算vec2[i]表示,第i+1天到最后一天的最大收益 //這里由于采用vec2[i]空間復雜度為O(2n),所以利用profit變量省去vec2[i],直接在vec[i]上相加即可 int max = prices[size-1], profit = 0; for(int i=size-2; i>=0; --i){ if(max - prices[i] > profit) //以當天為界,未來的最大收益,則是更遠的天數減去更近的天數 profit = max - prices[i]; vec[i] += profit; //在這里直接+=,直接將之前算的某天以前的最大收益和目前某天以后最大收益相加,節省空間復雜度 if(prices[i] > max) max = prices[i]; } for(int i=0; i<size; ++i) //找出某一天滿足最大收益最大 res = std::max(res, vec[i]); return res; }};
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: h网站在线观看 | 久久老司机精品视频 | 欧洲精品视频在线观看 | 一级成人欧美一区在线观看 | 国产精品成人一区二区三区吃奶 | 色播视频在线播放 | 午夜在线视频一区二区三区 | 黄色影院在线看 | 2019天天干夜夜操 | 欧美黑人伦理 | 午夜精品福利视频 | 成人男女啪啪免费观看网站四虎 | 性高潮一级片 | 高清av免费 | 国产欧美精品综合一区 | 亚洲影院在线播放 | 免费一级毛片电影 | 国产精品区一区二区三区 | 在线观看免费污视频 | 免费一级片观看 | xxxxhdhdhdhd日本| 中文字幕极速在线观看 | 精品成人av一区二区三区 | 成人综合区一区 | 欧美精品日日鲁夜夜添 | 国产精品一区在线观看 | 视频一区二区视频 | 午夜色片 | 成人羞羞视频在线观看免费 | 国产一级αv片免费观看 | 久久精品欧美一区二区三区不卡 | 午夜视频在线观看91 | 久草手机在线 | 天天夜夜操操 | 久久久久久久久久网站 | 精品亚洲网站 | 久久久成人一区二区免费影院 | 亚洲人成免费 | 久久成人精品视频 | 一级黄色播放 | 日韩精品中文字幕一区二区 |