2015小米暑期实习笔试题_风口的猪-中国牛市(dp)
生活随笔
收集整理的這篇文章主要介紹了
2015小米暑期实习笔试题_风口的猪-中国牛市(dp)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
風口之下。豬都能飛。當今中國股市牛市,真可謂“錯過等七年”。?給你一個回想歷史的機會,已知一支股票連續n天的價格走勢,以長度為n的整數數組表示,數組中第i個元素(prices[i])代表該股票第i天的股價。
如果你一開始沒有股票。但有至多兩次買入1股而后賣出1股的機會,而且買入前一定要先保證手上沒有股票。若兩次交易機會都放棄。收益為0。 設計算法。計算你能獲得的最大收益。?
輸入數值范圍:2<=n<=100,0<=prices[i]<=100?
輸入樣例:
3,8,5,1,7,8
輸出樣例:
12
代碼:
#include <iostream> #include <cmath> #include <vector>using namespace std;vector<int> prices;int calculateMax(vector<int> prices) {int i,nmin,nmax,len,ans;len=prices.size();int *lhs=new int[len];int *rhs=new int[len];lhs[0]=0;nmin=prices[0];for(i=1;i<len;i++){lhs[i]=max(lhs[i-1],prices[i]-nmin);if(prices[i]<nmin)nmin=prices[i]; // cout<<"lhs "<<i<<" "<<lhs[i]<<endl;}rhs[len-1]=0;nmax=prices[len-1];for(i=len-2;i>=0;i--){rhs[i]=max(rhs[i+1],nmax-prices[i]);if(prices[i]>nmax)nmax=prices[i]; // cout<<"rhs "<<i<<" "<<rhs[i]<<endl;}ans=0;for(i=0;i<len;i++)if((lhs[i]+rhs[i])>ans)ans=lhs[i]+rhs[i];return ans; }int main() {int m,len;while(cin>>m)prices.push_back(m);cout<<calculateMax(prices)<<endl;return 0; }以下是去掉凝視的測試截圖,能夠直觀一點
語言表達能力太差啦,以后發文會注意寫凝視,親們多多提建議哈~
再插個圖片
最后給個原題的鏈接
2015小米暑期實習筆試題
哦,對了。還有談論區
風口的豬-中國牛市
總結
以上是生活随笔為你收集整理的2015小米暑期实习笔试题_风口的猪-中国牛市(dp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 连接数据库的Provider、Drive
- 下一篇: 安卓音频开发(四)使用lame把wav转