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