国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

123. Best Time to Buy and Sell Stock III

2019-11-08 19:45:30
字體:
來源:轉載
供稿:網友

有趣的一題,一開始是以為用區間dp,dpij表示從i到j的最大值,結果發現有bug,然后通過最后求解想發到方法。 final = max(final, left[i] + right[i]); 其實我們只需要求出從左右兩邊算起來的最大值,不用把區間中的每一個小區間的最大值都求出來,所有就用了第一題的方法,從左邊算一次,再從右邊算一次(右邊算的優點不一樣,需要維護最大的數然后就sum,左邊是維護最小的數再維護最大的sum)

class Solution {public: int maxPRofit(vector<int>& prices) { if(prices.size() == 0) return 0; int n = prices.size(); int sum = 0, minn = prices[0]; vector<int>left(n, 0); vector<int>right(n, 0); for(int i = 1; i < n; ++ i){ if(prices[i] < minn) minn = prices[i]; else{ if(prices[i] - minn > sum) sum = prices[i] - minn; } left[i] = sum; } sum = 0; int maxx = prices[n - 1]; for(int i = n - 2; i >= 0; -- i){ if(prices[i] > maxx) maxx = prices[i]; else{ if(maxx - prices[i] > sum) sum = maxx - prices[i]; } right[i] = sum; } int final = 0; for(int i = 0; i < n - 1; ++ i){ final = max(final, left[i] + right[i]); } return final; }};
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吴川市| 文安县| 南江县| 新建县| 咸宁市| 永嘉县| 新蔡县| 凤冈县| 手游| 凯里市| 锦屏县| 太康县| 嘉善县| 保亭| 秀山| 武宁县| 寿阳县| 张家界市| 北票市| 锦屏县| 云林县| 松溪县| 寿阳县| 株洲市| 东光县| 抚远县| 宁安市| 宜丰县| 吐鲁番市| 长子县| 河北区| 北海市| 绍兴县| 行唐县| 昌都县| 新竹县| 龙胜| 滦南县| 兴文县| 鄱阳县| 灯塔市|