股票最赚钱的买入和卖出时间求法

直接贴代码以下:java

import java.util.Arrays;

public class StockDayFind {

	public static void main(String[] args) {
		int[] array = new int[20];
		//随机数组,表明股票价格
		for(int i=0;i<array.length;i++){
			array[i] = (int)(Math.random()*20);
		}
		System.out.println(Arrays.toString(array));
		
		getStock(array);

	}
	/**
	 * 股票价格数组(数组下标即第几天):[9, 7, 6, 14, 17, 3, 8, 10, 6, 17, 11, 4, 13, 19, 3, 6, 0, 2, 2, 18],求哪天买入哪天卖出赚钱最多,赚多少?
	 * @param price
	 */
	private static void getStock(int[] price){
		int value = 0;        //记录差价
		int index_min = 0;    //票价最低天
		int index_max = 0;    //票价最高天
		for(int i=1;i<price.length;i++){
			int valueTemp = price[i]-price[index_min];
			if(valueTemp > value){
				value = valueTemp;  //产生更大差值,记录差值和下标
				index_max = i;
			}
			if(price[i] < price[index_min]){   //若当前天价格低于价格最小天的值,修改最小值指针
				index_min = i;
			}
		}
		System.out.println((index_min+1) + "  " + (index_max+1) + "  " + value);
	}

}
相关文章
相关标签/搜索