一题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
思路:先给数组排序,排完序的数组如果存在一个数字出现的次数超过数组长度的一半,则它必定在数组中间位置
# -*- coding:utf-8 -*-
class Solution:
def MoreThanHalfNum_Solution(self, numbers):
# write code here
l=len(numbers)
n=l//2
numbers.sort()
t=numbers.count(numbers[n])
if t>n:
return numbers[n]
else:
return 0
本文介绍了一种在数组中寻找出现次数超过一半的数字的方法。通过排序数组并检查中间元素,可以有效地找到满足条件的数字。如果存在这样的数字,它必定位于数组的中间位置。
562

被折叠的 条评论
为什么被折叠?



