劍指 面試題56 2 陣列中數字出現的次數2

2021-10-05 00:08:39 字數 984 閱讀 4540

題目

在乙個陣列 nums 中除乙個數字只出現一次之外,其他數字都出現了三次。請找出那個只出現一次的數字。

1

<=n

ums.

leng

th

<

=10000,1

<=n

ums[

i]

<231

1 <= nums.length <= 10000,1 <= nums[i] < 2^

1<=n

ums.

leng

th<=1

0000

,1<=n

ums[

i]<23

1

思路雜湊

c++雜湊錶用unordered_map實現,注意pair.first和pair.second

位運算

c++ 雜湊表

class

solution

return0;

}};

python 位運算

class

solution

:def

singlenumber

(self, nums: list[

int])-

>

int:

ans =

0for i in

range(32

):#一位一位判斷

cnt =

0for num in nums:

if num &

1

1if cnt %3==

1:#出現1次數字的這一位是1

ans ^=(

1

劍指offer 面試題56 陣列中數字出現的次數

問題1 陣列中只出現一次的兩個數字 乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。2 nums 10000 思路 異或 首先,對陣列的每個數字依次進行異或,得到異或後的結果value。然後,記value最右邊第一位為1的位為i,依據第i位為1 0將陣列分...

劍指 面試題56 1 陣列中數字出現的次數

題目 乙個整型陣列 nums 裡除兩個數字之外,其他數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。要求時間複雜度是o n 空間複雜度是o 1 2 n um s 10000 2 nums 10000 2 n ums 1 0000 思路 任何乙個數字異或它自己都是0,0異或任何數還是原數字。所以...

劍指offer 面試題56 陣列中數字出現的次數

乙個整型陣列nums裡除兩個數字之外,其他數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。要求時間複雜度是o n 空間複雜度是o 1 輸入 nums 4,1,4,6 輸出 1,6 或 6,1 輸入 nums 1,2,10,4,1,4,3,3 輸出 2,10 或 10,2 字典 時間複雜度是o ...