1. 程式人生 > 實用技巧 >劍指offer28-陣列中出現次數超過一半的數字

劍指offer28-陣列中出現次數超過一半的數字

題目描述

陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入一個長度為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
        for
i 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])