Algorithm
LEETCODE 908. Smallest Range I
KANG_G1
2024. 5. 6. 10:15
/**
* @param {number[]} nums
* @param {number} k
* @return {number}
*/
var smallestRangeI = function(nums, k) {
if(nums.length === 1) return 0;
const min = Math.min(...nums);
const max = Math.max(...nums);
return Math.max(0, max-min-2*k);
};
풀이 과정
max-min 의 현재는 10인데 k를 사용해 8로 만들어야했다.
1차 답으로 max-min-k-2로 값을 구하려고 했으나 오답이었고,
2차 답으로 max-min-2*k로 값을 구하려고 했으나 음수가 나오게 되며 오답이었다.
2차 답에서 음수가 나오면 0으로 처리하고, 0이 아니라면 해당 로직 결과값이 나오면 되었으므로
Math.max를 적용해 해결해주었다.
nums의 length가 1이라면 답이 무조건 0이므로 early return으로 처리해주었다.