題目描述
陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列**現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。
# -*- coding:utf-8 -*-
class
solution
:def
morethanhalfnum_solution
(self, numbers)
:# write code here
candi, count, candi_count = numbers[0]
,1,0
for num in numbers[1:
]:if count ==0:
candi, count = num,
1elif candi == num:
count +=
1else
: count -=
1for num in numbers:
if num == candi:
candi_count +=
1return candi if
2*candi_count >
len(numbers)
else
0
劍指offer 28 陣列中出現次數超過一半的數字
題目 陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。思路 該題思路還是挺清晰的,首先判斷陣列是否為空,然後對陣列進行排序,如果有乙個數字出現的次數超過陣列長度的一半,那麼該數...
劍指offer 28 陣列中出現了一半的字母
陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。c class solution return 0 python coding utf 8 class solution def...
全排列問題 劍指offer28
求全排列的步驟 兩步,無重複字元的情況 1.求出所有可能在第乙個位置的陣列,即吧第乙個字元和後面的所有字元交換。2.固定第乙個字元,求後面所有字元的全排列。第2步中的全排列求解用到遞迴。此時,仍把後面的所有字元分成兩部分,後面字元的第乙個字元,以及這個字元之後的所有字元。然後把第乙個字元注意和他後面...