leetcode 910 最小差值 II

2021-08-28 11:01:18 字數 726 閱讀 6103

給定乙個整數陣列a,對於每個整數a[i],我們可以選擇x = -k或是x = k,並將x加到a[i]中。

在此過程之後,我們得到一些陣列b

返回b的最大值和b的最小值之間可能存在的最小差值。

首先排序,可以想到,大一些的估計都要-k,小一些的都要+k,但是這個分割點不好確定,所以迴圈遍歷查詢這個分割點就行。

然後需要注意的是,分割點找到之後需要再次確認最大值和最小值。

重點就在於確認變換之後的最大值和最小值。

class solution 

ma = min(ma,a[sz-1]-a[0]);

return ma;

}return 0;

}};

最大值和最小值大於4*k的話是一種特殊情況。

class solution {

public:

int smallestrangeii(vector& a, int k) {

sort(a.begin(),a.end());

int n=a.size(),i,ans=a.back()-a.front();

for(i=0;i+1這**寫的。。。

LeetCode 910 最小差值 II(貪心)

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

LeetCode刷題筆記 910 最小差值 II

給定乙個整數陣列 a,對於每個整數 a i 我們可以選擇 x k 或是 x k,並將 x 加到 a i 中。在此過程之後,我們得到一些陣列 b。返回 b 的最大值和 b 的最小值之間可能存在的最小差值。示例 1 輸入 a 7,8,8,5,2 k 4 輸出 5 示例 2 輸入 a 4,8,2,7,2 ...

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 輸入 ...