給定乙個包含0, 1, 2, ..., n
中 n 個數的序列,找出 0 .. n 中沒有出現在序列中的那個數。
示例 1:
輸入: [3,0,1]示例 2:輸出: 2
輸入: [9,6,4,2,3,5,7,0,1]說明:輸出: 8
你的演算法應具有線性時間複雜度。你能否僅使用額外常數空間來實現?
思路有兩種,一種是求和,根據數學方法算出缺失項,一種是使用異或,求出缺失項。
好像和以前的一道題(只出現一次的數字)有異曲同工之處。看了大家的題解,異或操作(^
)是一種很好的方式,不用考慮sum越界問題。
**舉個例子:**
那麼,就可以不用求和,直接使用異或運算^
進行**抵消**,剩下的數字就是缺失的了。
**如下:
classsolution
}
標記法 缺失數字 力扣(LeetCode)
給定乙個包含0,1,2,n中 n 個數的序列,找出 0 n 中沒有出現在序列中的那個數。示例 1 輸入 3,0,1 輸出 2示例 2 輸入 9,6,4,2,3,5,7,0,1 輸出 8說明 你的演算法應具有線性時間複雜度。你能否僅使用額外常數空間來實現?看到這個題的第乙個思路是標記法,之前在那好像看...
力扣日記 268 缺失數字 位運算
給定乙個包含 0,1,2,n 中 n 個數的序列,找出 0 n 中沒有出現在序列中的那個數。示例 1 輸入 3,0,1 輸出 2 示例 2 輸入 9,6,4,2,3,5,7,0,1 輸出 8 說明 你的演算法應具有線性時間複雜度。你能否僅使用額外常數空間來實現?class solution def ...
羅馬數字轉整數 力扣 LeetCode
題目描述 羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。字元數值i 1v5x 10l50c 100d 500m 1000 例如,羅馬數字 2寫做 ii 即為兩個並列的 1。12 寫做 xii 即為 x ii 27 寫做 xxvii,即為 xx v ii 通常情況下,羅馬數字中小的數字在大...