908 最小差值 I(C )

2021-08-28 14:26:44 字數 1349 閱讀 2402

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

輸入:a = [1,3,6], k = 3輸出:0解釋:b = [3,3,3] 或 b = [4,4,4]

1 <= a.length <= 100000 <= a[i] <= 100000 <= k <= 10000

【思路】該題猛一看好像很複雜,其實意思就是給乙個陣列,然後又給乙個k值,讓你在-k到k裡面找任意值(整數)加到陣列的每個值上;換句話說,a陣列裡面的值隨便加,前提是加的值範圍為-k到k之間。然後再看變完後的陣列裡面最大值和最小值差值最小的情況。

其實,這樣想,舉個例:假如a陣列最大值是10,最小值是0,只要k>=5,就能讓a裡面所有的值加成都是5這種情況吧,那返回值就是0,所以分情況:

1.陣列長度為1,返回 0;

2.最大值-最小值》=2k,返回 最大值-最小值-2k;

3.最大值-最小值》=2k,返回 0;

class solution 

}int min = a[a.size()-1];

for(i = 0; i < a.size()-1; i++)

}int max = a[a.size()-1];

if(a.size() <= 1) ret = 0;

if(max - min >= 2 * k) ret = max - min - 2 * k;

if(max - min < 2 * k) ret = 0;

return ret;

}};

leetcode 908 最小差值

因為加上的數是在k到 k範圍內,所以難度小了很多。題目 給定乙個整數陣列 a,對於每個整數 a i 我們可以選擇任意 x 滿足 k x k,並將 x 加到 a i 中。在此過程之後,我們得到一些陣列 b。返回 b 的最大值和 b 的最小值之間可能存在的最小差值。思路 因為每個數可以加上的範圍是在k到...

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 示例...