风口的猪-中国牛市
风口的猪-中国牛市
题目描述
风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法,计算你能获得的最大收益。 输入数值范围:2<=n<=100,0<=prices[i]<=100
示例1
输入
3,8,5,1,7,8
输出
12
枚举:由外到里,一点点把所有的情况都枚举出来,而且把实际问题抽象为数学问题
把问题抽象为取数问题即可
情况很多的枚举,把问题分细,就好枚举了。
1 class Solution { 2 public: 3 /** 4 * 计算你能获得的最大收益 5 * 6 * @param prices Prices[i]即第i天的股价 7 * @return 整型 8 */ 9 /* 10 枚举所有的买入点和卖出点 11 有一个要求 12 其实就是在一串数中选四个数 13 并且第二个大于第一个 14 第四个大于第三个 15 */ 16 int calculateMax(vector<int> prices) { 17 //一次都不买 18 int ans=0; 19 //买一次 20 for(int i=0;i<prices.size();i++){ 21 for(int j=i+1;j<prices.size();j++){ 22 if(prices[j]-prices[i]>ans){ 23 ans=prices[j]-prices[i]; 24 } 25 } 26 } 27 //买两次 28 for(int i1=0;i1<prices.size();i1++){ 29 for(int i2=i1+1;i2<prices.size();i2++){ 30 for(int i3=i2+1;i3<prices.size();i3++){ 31 for(int i4=i3+1;i4<prices.size();i4++){ 32 if(prices[i4]-prices[i3]+prices[i2]-prices[i1]>ans){ 33 ans=prices[i4]-prices[i3]+prices[i2]-prices[i1]; 34 } 35 } 36 } 37 } 38 } 39 return ans; 40 } 41 };
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-10-30:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672