如果一个人在知道了股票每天的股价以后,对该股票进行投资,问什么时候买入和卖出(注意这里有先后顺序)能取得最大的收益。其数学模型就是,给定一个整数数组,a[1],a[2],...,a[n],每一个元素a


public class MaxMoney {
    //考虑到钱,用double代替,返回数组,0表示开始投资时间,1表示结束时间
    public int[] getDay(double[] array){
        //用于存储差值,便于比较
        double max = 0.0;
        //记录投资时间
        int begin = 0;
        //记录投资结束时间
        int end = 0;
        for (int i = 0; i < array.length-1; i ++){
            for (int j = i; j < array.length;j ++ ) {
                double tmp = array[j] - array[i];
                if(tmp > max) {
                    max = tmp;
                    begin = i;
                    end = j;
                }
            }
        }
        return new int[]{begin,end};
    }

    public static void main(String[] args) {
        double array[] = {1.0,2.1,1.2,2.0,5.7};
        MaxMoney maxMoney = new MaxMoney();
       int[] days = maxMoney.getDay(array);
        for (int i = 0; i < days.length; i++) {
            System.out.print(days[i]+" ");
        }
    }
}