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