Leetcode Java Smallest Range I

업데이트:

문제

Link

코드

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));
  }

}

결과

Link

설명

  1. nums의 최소 하나의 값에 [-k, k] 범위의 값을 더했을 때, 최댓값과 최솟값의 차이가 가장 작은 값을 구하는 문제이다.

  2. max와 min에 nums의 최댓값과 최솟값을 찾아 넣어준다.

  3. 둘의 차이가 가장 작은 임계치는 0이므로, 0과 $(max - k) - (min + k) = max - min - (k \times 2)$ 중 큰 값을 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기