Smallest Range I 最小差值 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]
示例 3:
輸入:A = [1,3,6], K = 3 輸出:0 解釋:B = [3,3,3] 或 B = [4,4,4]
提示:
1 <= A.length <= 10000
0 <= A[i] <= 10000
0 <= K <= 10000
思路:把陣列排序,找出最大的值max和最小的值min,因為A陣列中的每個數都會在[A[i]-K,A[i]+K]的範圍內浮動,所以只需要比較最大的值max和最小的值min即可,取最大值-k和最小值+k的值比較即可。
參考程式碼:
class Solution {
public:
int smallestRangeI(vector<int>& A, int K) {
if (A.size() == 1) return 0;
sort(A.begin(), A.end());
if ((A[0] + K) >= (A[A.size() - 1] - K)) return 0;
return A[A.size() - 1] - 2*K-A[0];
}
};
相關文章
- LeetCode之Smallest Range I(Kotlin)LeetCodeKotlin
- [LeetCode] 910. Smallest Range IILeetCode
- i = ++i
- 你真的瞭解 i++, ++i 和 i+++++i 以及 i+++i++ 嗎?
- jvm是如何執行i = i++ + ++i的,你知道嗎?JVM
- [COCI2021-2022#1] Kamenčići
- 你真的懂 i++ 和 ++i 嗎?
- Intel CPU(i3、i5、i7、i9)型號、效能詳細解讀Intel
- Arcaea I
- 位元組碼指令分析 ++i 和 i++
- C++複習整理---i++和++iC++
- npm i和npm i --production的區別NPM
- 計算機I/O與I/O模型計算機模型
- 關於java中的i++和++iJava
- Java I/OJava
- I. Disks
- Reflective Journal I
- autoreconf -i -f
- I/O流
- git rebase -iGit
- 技術小菜比入坑 LinkedList,i 了 i 了
- 關於 i=i++ 問題、入棧順序
- 福尼斯焊機TPS320i/TPS400i/TPS500i的焊接特性S3
- synchronized下的 i+=2 和 i++ i++執行結果居然不一樣synchronized
- 處理器i5和i7有什麼區別 電腦i5和i7哪個更好
- i7和i5的處理器哪個好 英特爾i7和i5cpu哪個更好
- 八代i3 8100對比i5 8400的區別 i3 8100和i5 8400哪個好?
- i5-8500和i7-7700K區別對比 i5 8500和i7 7700K哪個好?
- Python教程:精簡概述I/O模型與I/O操作Python模型
- Java中 i=i++ 問題底層原理解析Java
- C++中的i++和++i你真的理解嗎?C++
- i7-8086K對比i7-8700K評測 i7-8086K和i7-8700K有何區別
- I. 棋盤
- c++ I/OC++
- i_uintptr_tUI
- I2C
- I'm coming...
- i角檢驗