LeetCode題目 最小差值 I

2021-09-24 05:47:34 字數 887 閱讀 4724

題目:

給定乙個整數陣列 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 示例...