风口的猪-中国牛市
風口之下,豬都能飛。當今中國股市牛市,真可謂“錯過等七年”。 給你一個回顧歷史的機會,已知一支股票連續n天的價格走勢,以長度為n的整數數組表示,數組中第i個元素(prices[i])代表該股票第i天的股價。 假設你一開始沒有股票,但有至多兩次買入1股而后賣出1股的機會,并且買入前一定要先保證手上沒有股票。若兩次交易機會都放棄,收益為0。 設計算法,計算你能獲得的最大收益。 輸入數值范圍:2<=n<=100,0<=prices[i]<=100
public class Solution {public final static int MAXN=105; /*** 計算你能獲得的最大收益* * @param prices Prices[i]即第i天的股價* @return 整型*/public int calculateMax(int[] prices) {if(prices==null || prices.length<2){return 0;}//left[i]表示0到i一次買入賣出最大收益//minx表示最小股價int left[]=new int[MAXN];left[0]=0;int minx=prices[0];for(int i=1;i<prices.length;i++){left[i]=Math.max(left[i-1],prices[i]-minx);minx=Math.min(minx, prices[i]);}//right[i]表示i到len-1一次買入賣出最大收益//minx表示最小股價int right[]=new int[MAXN];right[prices.length-1]=0;int maxx=prices[prices.length-1];for(int i=prices.length-2;i>=0;i--){right[i]=Math.max(right[i+1],maxx-prices[i]);maxx=Math.max(maxx, prices[i]);}int ans=0;for(int i=0;i<prices.length;i++){ans=Math.max(ans,left[i]+right[i]);}return ans;} }總結
- 上一篇: 网站优化提高网站关键词密度是必要的
- 下一篇: 敲黑板!5G消息、富媒体消息、一键登录知