美文网首页
[2021-09-16][简单][NC73]数组中出现次数超过一

[2021-09-16][简单][NC73]数组中出现次数超过一

作者: 许忠慧 | 来源:发表于2021-09-16 10:45 被阅读0次

题目来源(牛客网)[https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163?tpId=188&&tqId=38636&rp=1&ru=/activity/oj&qru=/ta/job-code-high-week/question-ranking]

描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。你可以假设数组是非空的,并且给定的数组总是存在多数元素。1<=数组长度<=50000,0<=数组元素<=10000

示例1
输入:[1,2,3,2,2,2,5,4,2]
返回值:2

示例2
输入:[3,3,3,3,2,2,2]
返回值:3

示例3
输入:[1]
返回值:1

解题思路:
1、使用set方法对数组进行去重
2、遍历去重后的数组,用count方法获取每个set后元组元素在原数组中出现的次数
3、如果出现次数大于原数组长度的一半则返回该元素。这里无需考虑长度的奇偶性

class Solution:
    def MoreThanHalfNum_Solution(self, numbers):
        # write code here
        numbers2 = set(numbers)
        flag = len(numbers)
        
        for number in numbers2:
            if numbers.count(number) > flag/2:
                return number

相关文章

网友评论

      本文标题:[2021-09-16][简单][NC73]数组中出现次数超过一

      本文链接:https://www.haomeiwen.com/subject/twkrgltx.html