劍指Offer 56 陣列中只出現一次的兩個數字

2021-09-02 20:04:19 字數 786 閱讀 8885

乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。你可以假設這兩個數字一定存在。

樣例輸入:[1,2,3,3,4,4]

輸出:[1,2]

class

solution

(object):

def(self, nums)

:"""

:type nums: list[int]

:rtype: list[int]

"""xor =

0for i in nums:

xor = xor ^ i

count =

0while

(xor !=0)

: r = xor &

0b1 count +=

1if r ==1:

break

else

: xor = xor >>

1 count -=

1 split =

1while

(count >0)

: split = split <<

1 count -=

1 first, second =0,

0for i in nums:

if i & split ==0:

first = first ^ i

else

: second = second ^ i

return

[first, second]

劍指offer 56 陣列中只出現一次的數字

乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次,找出這兩個數。先放乙個簡單的dict統計頻率的python from collections import counter class solution 返回 a,b 其中ab是出現一次的兩個數字 def self,array b counte...

《劍指Offer》56 陣列中只出現一次的數字

牛客網 乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次,找出這兩個數。兩個不相等的元素在位級表示上必定至少會有一位存在不同。將陣列的所有元素異或得到的結果為不存在重複的兩個元素異或的結果。diff diff 得到出 diff 最右側不為 0 的位,也就是不存在重複的兩個元素在位級表示上最右側...

劍指offer 56 陣列中只出現一次的數字 合集

一 在乙個陣列 nums 中除乙個數字只出現一次之外,其他數字都出現了三次。請找出那個只出現一次的數字。示例 1 輸入 nums 3,4,3,3 輸出 4 示例 2 輸入 nums 9,1,7,9,7,9,7 輸出 1 限制 1 nums.length 10000 1 nums i 2 31 通過次...