136 只出現一次的數字

2021-10-06 03:16:10 字數 807 閱讀 3706

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

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

示例 1:

輸入: [2,2,1]

輸出: 1

示例 2:

輸入: [4,1,2,1,2]

輸出: 4

class solution:

def singlenumber(self, nums: list[int]) -> int:

#宣告乙個集合

s = set()

for i in nums:

#如果在這個集合裡面就刪除該元素,否則就新增

if i in s:

s.remove(i)

else:

s.add(i)

#最後集合裡面只有乙個元素pop就行了

return s.pop()

class solution:

def singlenumber(self, nums: list[int]) -> int:

#存放結果元素

res = 0

#依次進行亦或運算

for i in nums:

res^=i

return res

總結:今天這個題1分鐘寫出來,之前做過類似題目。其實發現演算法中二進位制運算和移位運算是乙個寶藏,需要好好挖掘,就會收穫意想不到的意外。

136 只出現一次的數字

一.題目 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,1 輸出 1示例 2 輸入 4,1,2,1,2 輸出 4二.思路及 法1.使用hash tab...

136 只出現一次的數字

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,1 輸出 1 示例 2 輸入 4,1,2,1,2 輸出 4 異或運算滿足交換律,如a b c等同於c b...

136 只出現一次的數字

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,1 輸出 1 示例 2 輸入 4,1,2,1,2 輸出 4 c int singlenumber int...