zoukankan      html  css  js  c++  java
  • 股票交易日

    在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行)。给出一天中的股票变化序列,请写一个程序计算一天可以获得的最大收益。请采用实践复杂度低的方法实现。

    给定价格序列prices及它的长度n,请返回最大收益。保证长度小于等于500。

    测试样例:
    [10,22,5,75,65,80],6
    返回:87
    思路:1、先将价格序列分为左右两部分1<=n<=n-3
       2、求出左部分的最大收益
       3、求出右部分的最大收益
       4、左部分的收益加上右部分的收益
    class Stock {
    public:
        int maxProfit(vector<int> prices, int n) {
            // write code here
            int max=0;
            for(int i=1;i<=n-3;i++){//A[i]为第一次卖出的股票价格
                 int lmax=prices[1]-prices[0];
                 int rmax=prices[i+2]-prices[i+1];
                for(int j=0;j<=i;j++){
                   for(int jj=j;jj<=i;jj++){
                         if(lmax<prices[jj]-prices[j]){
                         lmax=prices[jj]-prices[j];
                      }   
                   }
                }
                for(int m=i+1;m<=n-1;m++){
                    for(int mm=m;mm<=n-1;mm++){
                        if(rmax<prices[mm]-prices[m]){
                            rmax=prices[mm]-prices[m];
                        }
                    }
                }
               if(max<lmax+rmax){
                  max=lmax+rmax;
               }
            }
            return max;
        }
    };
  • 相关阅读:
    Standford 关于机器学习相关课程的网址
    EM算法
    如何禁止scrollView 的子控件自动滑到 底部或者中间部分
    进制表示
    MultiView空间例子
    TreeView控件例子
    FormView分页显示数据的例子
    DataList嵌套绑定例子
    在GridView中实现全选反选的例子
    ListBox控件例子
  • 原文地址:https://www.cnblogs.com/dingou/p/5804966.html
Copyright © 2011-2022 走看看