乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。
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...