题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为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])