「每日LeetCode」2021年2月17日

本文最后更新于:2023年3月19日 晚上

Lt908. 最小差值 I

908. 最小差值 I

难度简单 63 收藏分享切换为英文接收动态反馈
给你一个整数数组 A,请你给数组中的每个元素 A[i] 都加上一个任意数字 x-K <= x <= K),从而得到一个新数组 B
返回数组 B 的最大值和最小值之间可能存在的最小差值。
 示例 1:

1
2
3
输入:A = [1], K = 0
输出:0
解释:B = [1]

示例 2:

1
2
3
输入:A = [0,10], K = 2
输出:6
解释:B = [2,8]

示例 3:

1
2
3
输入:A = [1,3,6], K = 3
输出:0
解释:B = [3,3,3] 或 B = [4,4,4]

提示:

  1. 1 <= A.length <= 10000
  2. 0 <= A[i] <= 10000
  3. 0 <= K <= 10000

思路

得到数组内最大最小的值,最大的减去 K,最小的加上 K,求最大减最小的结果则为最小差值,判断是否小于 0:小于则可以将该数组全部设为同一个数,差值为 0。

解答

1
2
3
4
5
6
7
8
9
/**
* @param {number[]} A
* @param {number} K
* @return {number}
*/
var smallestRangeI = function (A, K) {
const res = Math.max(...A) - Math.min(...A) - 2 * K;
return res < 0 ? 0 : res;
};