风口的猪,中国牛市
題目描述 風口之下,豬都能飛。當今中國股市牛市,真可謂“錯過等七年”。 給你一個回顧歷史的機會,已知一支股票連續n天的價格走勢,以長度為n的整數數組表示,數組中第i個元素(prices[i])代表該股票第i天的股價。 假設你一開始沒有股票,但有至多兩次買入1股而后賣出1股的機會,并且買入前一定要先保證手上沒有股票。若兩次交易機會都放棄,收益為0。 設計算法,計算你能獲得的最大收益。 輸入數值范圍:2<=n<=100,0<=prices[i]<=100 示例1 輸入 3,8,5,1,7,8 輸出 12 題解:前后各遍歷一次 再模擬一下 Lintcode上有類似的題吧 好像 1 class Solution {
2 public:
3 /**
4 * 計算你能獲得的最大收益
5 *
6 * @param prices Prices[i]即第i天的股價
7 * @return 整型
8 */
9 int calculateMax(vector<int> prices) {
10 const int n = 100+5;
11 int len = prices.size();
12 vector<int> leftmax(n);
13 vector<int> rightmax(n);
14
15 int primin = prices[0];
16 leftmax[0]=-1;
17 for(int i = 1;i <len;i++){
18 primin = min(primin,prices[i]);
19 leftmax[i]=max(leftmax[i-1],prices[i]-primin);
20 }
21 int primax = prices[len-1];
22 rightmax[len-1]=0;
23 for(int i = len-2;i>=0;i--){
24 primax = max(primax,prices[i]);
25 rightmax[i]=max(rightmax[i+1],primax-prices[i]);
26 }
27 int pmax = 0;
28 for(int i = 0;i<len;i++){
29 pmax = max(pmax,leftmax[i]+rightmax[i]);
30 }
31 return pmax;
32 }
33 };
?
轉載于:https://www.cnblogs.com/cwfzzz/p/8735391.html
總結
- 上一篇: 当下的力量实践手册读书笔记(1.30)
- 下一篇: Vue的过渡