股票最賺錢的買入和賣出時間求法

直接貼代碼以下: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);
	}

}
相關文章
相關標籤/搜索