首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >82 - 找出列表中出现次数超过列表长一半的元素

82 - 找出列表中出现次数超过列表长一半的元素

原创
作者头像
ruochen
修改2021-06-16 10:23:46
修改2021-06-16 10:23:46
9210
举报

有一个数字列表,要找出列表中出现次数超过列表长度一半的数字,如果有2个或2个以上数字出现的次数都超过了列表长度的一半,找出第一个满足条件的数字即可,如果列表元素个数是奇数,列表元素个数的一半取整数部分(四舍五入)

例如: 长度为21的列表的一半取11

代码语言:txt
复制
def moreThanHalfNum(numbers):
    d = {}
    maxNum = 'no'
    listCount = len(numbers)
    
    for n in numbers:
        if d.get(n) is None:
            d[n] = 1
            if maxNum == 'no':
                maxNum = n
        else:
            d[n] += 1
        if n != maxNum and d.get(n) > d.get(maxNum):
            maxNum = n
        if d.get(maxNum) > listCount // 2:
            return maxNum
    return 'no' 

print(moreThanHalfNum([1, 2, 3, 4, 1, 1, 1, 1]))
代码语言:txt
复制
1

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 有一个数字列表,要找出列表中出现次数超过列表长度一半的数字,如果有2个或2个以上数字出现的次数都超过了列表长度的一半,找出第一个满足条件的数字即可,如果列表元素个数是奇数,列表元素个数的一半取整数部分(四舍五入)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档