題目:
給定乙個整數陣列 a,對於每個整數 a[i],我們可以選擇任意 x 滿足 -k <= x <= k,並將 x 加到 a[i] 中。
在此過程之後,我們得到一些陣列 b。
返回 b 的最大值和 b 的最小值之間可能存在的最小差值。
示例:
輸入:a = [1], k = 0
輸出:0
解釋:b = [1]
目的:該題目的最終目的是為了求新生成的列表b的最大最小之間的差值
解題思路:
1.首先如果k =0,此時求的就是a的差值,直接返回max(a) -min(a)即可
2.當a的長度為1時,差值也為0
3.當k >= max(a) // 2時,此時可能存在的最小差值也是0;例如:
a = [1, 2, 8] , k = 5
此時可以得到乙個這樣的b列表:[1+3,2+2,8+(-4)] -->[4, 4, 4]
4.排除以上情況後,可以對差值進行乙個計算了: max(a) - min(a) - 2 * k
**如下:
class solution:
def smallestrangei(self, a: list[int], k: int) -> int:
if len(a) == 1 or k >= (max(a) // 2):
return 0
elif k == 0:
return max(a) - min(a)
else:
return max(a) - min(a) - 2 * k
也可以一行搞定:
return max(a) - min(a) - 2 * k
LeetCode最小差值 I
給你乙個整數陣列 a,對於每個整數 a i 我們可以選擇處於區間 k,k 中的任意數 x 將 x 與 a i 相加,結果存入 a i 在此過程之後,我們得到一些陣列 b。返回 b 的最大值和 b 的最小值之間可能存在的最小差值。示例 1 輸入 a 1 k 0 輸出 0 解釋 b 1 示例 2 輸入 ...
Leetcode 908 最小差值 I
給定乙個整數陣列 a,對於每個整數 a i 我們可以選擇任意 x 滿足 k x k,並將 x 加到 a i 中。在此過程之後,我們得到一些陣列 b。返回 b 的最大值和 b 的最小值之間可能存在的最小差值。示例 1 輸入 a 1 k 0 輸出 0 解釋 b 1 示例 2 輸入 a 0,10 k 2 ...
leetcode 908 最小差值 I
給定乙個整數陣列a,對於每個整數a i 我們可以選擇任意x滿足 k x k,並將x加到a i 中。在此過程之後,我們得到一些陣列b。返回b的最大值和b的最小值之間可能存在的最小差值。示例 1 輸入 a 1 k 0輸出 0解釋 b 1 示例 2 輸入 a 0,10 k 2輸出 6解釋 b 2,8 示例...