leetcode (Smallest Range I)
阿新 • • 發佈:2019-01-06
Title: Smallest Range I 908
Difficulty:Easy
原題leetcode地址: https://leetcode.com/problems/smallest-range-i/
1. 見程式碼註釋
時間複雜度:O(n),一次一層for迴圈,最長遍歷長度為陣列長度n。
空間複雜度:O(1),沒有申請額外空間。
/** * 如果A中最大值減去最小值等於小於2K,最後B中的數都能是一樣的,這樣返回的為0 * 如果A中最大值減去最小值大於2K,A中最小值加上負K,最大值加上K,然後做差值 * @param A * @param K * @return */ public static int smallestRangeI(int[] A, int K) { int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; for (int a : A) { min = Math.min(min, a); max = Math.max(max, a); } return max - min > 2 * K ? max - min - 2 * K : 0; }