|
2 | 2 |
|
3 | 3 | import java.util.Arrays;
|
4 | 4 |
|
5 |
| -/** |
6 |
| - * 908. Smallest Range I |
7 |
| - * |
8 |
| - * Given an array A of integers, for each integer A[i] we may choose any x with -K <= x <= K, and add x to A[i]. |
9 |
| - * |
10 |
| - * After this process, we have some array B. |
11 |
| - * |
12 |
| - * Return the smallest possible difference between the maximum value of B and the minimum value of B. |
13 |
| - * |
14 |
| - * |
15 |
| - * |
16 |
| - * Example 1: |
17 |
| - * |
18 |
| - * Input: A = [1], K = 0 |
19 |
| - * Output: 0 |
20 |
| - * Explanation: B = [1] |
21 |
| - * Example 2: |
22 |
| - * |
23 |
| - * Input: A = [0,10], K = 2 |
24 |
| - * Output: 6 |
25 |
| - * Explanation: B = [2,8] |
26 |
| - * Example 3: |
27 |
| - * |
28 |
| - * Input: A = [1,3,6], K = 3 |
29 |
| - * Output: 0 |
30 |
| - * Explanation: B = [3,3,3] or B = [4,4,4] |
31 |
| - * |
32 |
| - * |
33 |
| - * Note: |
34 |
| - * |
35 |
| - * 1 <= A.length <= 10000 |
36 |
| - * 0 <= A[i] <= 10000 |
37 |
| - * 0 <= K <= 10000 |
38 |
| - */ |
39 | 5 | public class _908 {
|
40 | 6 | public static class Solution1 {
|
41 | 7 | public int smallestRangeI(int[] A, int K) {
|
42 |
| - Arrays.sort(A); |
43 |
| - int smallestPlus = A[0] + K; |
44 |
| - int biggestMinus = A[A.length - 1] - K; |
45 |
| - int diff = biggestMinus - smallestPlus; |
46 |
| - if (diff > 0) { |
47 |
| - return diff; |
48 |
| - } else { |
49 |
| - return 0; |
50 |
| - } |
51 |
| - } |
52 |
| - } |
| 8 | + Arrays.sort(A); |
| 9 | + int smallestPlus = A[0] + K; |
| 10 | + int biggestMinus = A[A.length - 1] - K; |
| 11 | + int diff = biggestMinus - smallestPlus; |
| 12 | + if (diff > 0) { |
| 13 | + return diff; |
| 14 | + } else { |
| 15 | + return 0; |
| 16 | + } |
| 17 | + } |
| 18 | + } |
53 | 19 |
|
54 |
| - public static class Solution2 { |
55 |
| - public int smallestRangeI(int[] A, int K) { |
56 |
| - int min = A[0]; |
57 |
| - int max = A[0]; |
| 20 | + public static class Solution2 { |
| 21 | + public int smallestRangeI(int[] A, int K) { |
| 22 | + int min = A[0]; |
| 23 | + int max = A[0]; |
58 | 24 |
|
59 |
| - for (int k : A) { |
60 |
| - min = Math.min(min, k); |
61 |
| - max = Math.max(max, k); |
62 |
| - } |
| 25 | + for (int k : A) { |
| 26 | + min = Math.min(min, k); |
| 27 | + max = Math.max(max, k); |
| 28 | + } |
63 | 29 |
|
64 |
| - return Math.max(max - min - 2 * K, 0); |
65 |
| - } |
66 |
| - } |
| 30 | + return Math.max(max - min - 2 * K, 0); |
| 31 | + } |
| 32 | + } |
67 | 33 | }
|
0 commit comments