Leetcode Java Smallest Range I
업데이트:
문제
코드
class Solution {
public int smallestRangeI(int[] nums, int k) {
int max = nums[0];
int min = nums[0];
for (int num : nums) {
max = Math.max(max, num);
min = Math.min(min, num);
}
return Math.max(0, max - min - (k * 2));
}
}
결과
설명
-
nums의 최소 하나의 값에 [-k, k] 범위의 값을 더했을 때, 최댓값과 최솟값의 차이가 가장 작은 값을 구하는 문제이다.
-
max와 min에 nums의 최댓값과 최솟값을 찾아 넣어준다.
-
둘의 차이가 가장 작은 임계치는 0이므로, 0과 $(max - k) - (min + k) = max - min - (k \times 2)$ 중 큰 값을 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기