給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。
說明:你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?
任何數於0異或為任何數 0 ^ n => n
相同的數異或為0: n ^ n => 0
var a = [2,3,2,4,4]
2 ^ 3 ^ 2 ^ 4 ^ 4等價於 2 ^ 2 ^ 4 ^ 4 ^ 3 => 0 ^ 0 ^3 => 3
class
solution
:def
singlenumber
(self, nums: list[
int])-
>
int:
sum=nums[0]
for i in nums[1:
]:sum^
=i return sum
抄的大佬嘿嘿
————————————————————
2020/05/14 打卡
class
solution
:def
singlenumber
(self, nums: list[
int])-
>
int:
k=0for i in nums:
k^=i return k
執行用時 :40 ms, 在所有 python3 提交中擊敗了92.39%的使用者直接使用0是因為,記憶體消耗 :15.2 mb, 在所有 python3 提交中擊敗了10.53%的使用者
0出現兩次,那麼i^0^0=i,i
可以是任何數
0只出現一次,那麼所有的數都抵消後0^0=0
,結果就是0.
力扣136 只出現一次的數字
傻雕巴尼 題目位址 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,1 輸出 1 示例 2 輸入 4,1,2,1,2 輸出 4 暴力搜尋 hash表pu...
力扣136 只出現一次的數字
給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,1 輸出 1 示例 2 輸入 4,1,2,1,2 輸出 4 利用異或運算子,兩個相等的數異或以後結果等於...
力扣練習日記 只出現一次的數字
擴充套件 只出現一次的兩個數字 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,1 輸出 1 示例 2 輸入 4,1,2,1,2 輸出 4 這裡先上 p...