劍指offer28-陣列中出現次數超過一半的數字
阿新 • • 發佈:2020-11-25
題目描述
陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入一個長度為9的陣列{1,2,3,2,2,2,5,4,2}。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。示例
輸入 [1,2,3,2,2,2,5,4,2]
返回值 2
知識點回顧
暴力輪詢==
程式碼
# -*- coding:utf-8 -*- class Solution: def MoreThanHalfNum_Solution(self, numbers): # write code here lenth=len(numbers)//2 fori in range(lenth+1): //只需看從前半部分元素開始輪詢,用flg記錄輪詢到的元素i出現次數 flg=1 for j in numbers[i+1:]: if j==numbers[i]: flg+=1 while flg>lenth: //超過一半時,輸出元素i return numbers[i] return 0
#校驗
a=Solution() a.MoreThanHalfNum_Solution([2,2,2,2,2,1,3,4,5])