劍指offer Q40 陣列中出現一次的數

2021-09-07 06:00:53 字數 505 閱讀 5110

書裡面關於分類的推斷有些麻煩,通過某一位為0為1來對陣列元素進行分類。假如第3位為1。那麼也就是元素x & 8 等於或不等於0,所以不是必需非的用第幾位去推斷。

def once(array):

reor = 0

for x in array:

reor ^= x

bit1 = firstbit1(reor)

first = 0

second = 0

for x in array:

if x & bit1 != 0:

first ^= x

else:

second ^= x

return first, second

def firstbit1(x):

n = 1

while true:

if x & n != 0:

return n

else:

n <<= 1

劍指offer 陣列在排序陣列中出現的次數

記錄次數,直接用data.count k 也通過了。或者常規演算法,出現有序用二分查詢。class solution def getnumberofk self,data,k write code here if len data 0 return 0 count 0 low 0 high len ...

劍指offer第39 陣列中出現次數超過一半的數字

陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。coding utf 8 classsolution defmorethanhalfnum solution self numb...

劍指Offer 028陣列中出現次數超過一半的陣列

028陣列 現次數超過一半的陣列 題目 陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列 現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0 方法 map統計法 思路 遍歷陣列,用map來記錄每個數出現的次數,最後再遍歷map查詢是...