牛客66道程式設計題 陣列中只出現一次的數字

2021-09-27 07:22:39 字數 1552 閱讀 5864

乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。

class

solution

:# 返回[a,b] 其中ab是出現一次的兩個數字

def(self, array)

:# write code here

tmp=

for a in array:

if a in tmp:

tmp.remove(a)

else

:return tmp

class

solution

:# 返回[a,b] 其中ab是出現一次的兩個數字

def(self, array)

:# write code here

hashmap=

#定義乙個雜湊表為字典

for a in array:

#建立雜湊表對映

ifstr

(a)in hashmap:

hashmap[

str(a)]+=

1else

: hashmap[

str(a)]=

1 res=

#建立乙個返回表

for i in hashmap.keys():

if hashmap[i]==1

:int

(i))

return res

當只有乙個數出現一次時,我們把陣列中所有的數,依次異或運算,最後剩下的是唯一的數,因為成對出現的都抵消了。

class

solution

:def

(self, array):if

not array:

return

# 對array中的數字進行異或運算

tmp =

0for i in array:

tmp ^

= i # 獲取tmp中最低位1的位置

idx =

0while

(tmp &1)

==0: tmp >>=1

idx +=

1 a = b =

0for i in array:

if self.isbit(i, idx)

: a ^

= i else

: b ^

= i return

[a, b]

defisbit

(self, num, idx)

:"""

判斷num的二進位制從低到高idx位是不是1

:param num: 數字

:param idx: 二進位制從低到高位置

:return: num的idx位是否為1

"""num = num >> idx

return num &

1

牛客66道程式設計題 替換空格

class solution s 源字串 defreplacespace self,s write code here return s.replace 20 class solution s 源字串 defreplacespace self,s write code here s list s 把...

牛客66道程式設計題 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 當只有1個台階時,只有一種跳法,那就是1。當有2個台階時,則有兩種跳法,分別是1 1和2。當有3個台階時,則有3種跳法,分別是1 1 1,1 2和2 1。當有4個台階時,則有5種跳法,...

牛客66道程式設計題 複雜鍊錶的複製

輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 coding utf 8 class randomlistnode def init se...