力扣日記 136 只出現一次的數 位運算

2021-10-01 02:34:59 字數 978 閱讀 8404

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。

說明:你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?

任何數於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%的使用者

記憶體消耗 :15.2 mb, 在所有 python3 提交中擊敗了10.53%的使用者

直接使用0是因為,

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