題目描述
給定某產品多少天的價格,記錄于prices中,請找出任意兩天之間的最小價格差(即abs(prices[i] - prices[j]))的最小值,i!=j)并計算最小介個差組合的個數
樣例1
輸入
[1,3,7,5,12]
輸出
3
樣例2
輸入
[90,98,90,90,1,1]
輸出
4
Java源碼
import java.nio.charset.StandardCharsets;
import java.util.Scanner;public class MinPriceDiff {public static void main(String[] args) {Scanner cin = new Scanner(System.in, StandardCharsets.UTF_8.name());while (cin.hasNext()) {String[] inputStr = cin.nextLine().split(",");int[] prices = new int[inputStr.length];for (int i = 0; i < inputStr.length; i++) {prices[i] = Integer.parseInt(inputStr[i]);}System.out.println(getMinPriceDiff(prices));}}static int getMinPriceDiff(int[] prices) {int n = prices.length;// 最小差值int minDiff = Integer.MAX_VALUE;// 最小差值組數int count = 0;for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {// 差值int diff = Math.abs(prices[i] - prices[j]);// 若果差值小于最小差值計數初始化為1if (diff < minDiff) {minDiff = diff;count = 1;} else if (diff == minDiff) {// 如果差值等于最小差值則計數+1count++;}}}return count;}
}