剑指offer-python刷题-数组中出现次数超过一般的数字
发布日期:2021-07-28 12:03:10
浏览次数:3
分类:技术文章
本文共 900 字,大约阅读时间需要 3 分钟。
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。你可以假设数组是非空的,并且给定的数组总是存在多数元素。1<=数组长度<=50000
这个题目看完,我觉得应该是建立两个列表,分别存储原数组中不同的元素和每个元素出现的次数。
# -*- coding:utf-8 -*-class Solution: def MoreThanHalfNum_Solution(self, numbers): # write code here #给定列表中元素后,返回该元素在列表中的索引值 def find_index(array_1,b): for i in range(len(array_1)): if array_1[i] == b: return i number_diff = [] number_num = [] for i in numbers: if i in number_diff: number_num[find_index(number_diff,i)] += 1 else: number_diff.append(i) number_num.append(1) if max(number_num) > sum(number_num)/2: return number_diff[find_index(number_num,max(number_num))]
讨论区找到的新方法:由于题目中有限定条件,这样一个出现次数超过数组长度一半的元素在排序之后,数组中的中位数一定是这个要寻找的元素。
转载地址:https://blog.csdn.net/sinat_42437278/article/details/117391201 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月15日 07时46分24秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
云游全域应用,手握这张“身份证”就够了!
2019-04-28
《人工智能成熟度调研》:AI 的下一个三年计划
2019-04-28
Azure 服务月度更新盘点 | 十一月
2019-04-28
软件系统高可用架构思考
2019-04-28
超牛逼!这款轻量级性能监控系统真强大~
2019-04-28
建设 Kubernetes 生产环境的 16条建议
2019-04-28
MySQL 8.0 的 5 个新特性,太实用了!
2019-04-28
求求你了!别瞎提交代码了,看人家 Git 提交规范那叫一个舒服!
2019-04-28
谈谈双活业务中心和异地容灾备份设计
2019-04-28
Kafka是什么,主要应用在什么场景?
2019-04-28
大厂小厂都在用的 RAID 软件阵列技术,必须学起来!
2019-04-28
小试牛刀!Nginx 搭建静态资源服务器
2019-04-28
Nginx 常用配置汇总!从入门到干活足矣
2019-04-28
几种技巧,帮你提升接口查询速度
2019-04-28
牛逼!下一代 Docker 镜像构建神器
2019-04-28
IDEA 2021.1 的 Win 和 Mac 快捷键大全!
2019-04-28
别了 Kafka!拉卡拉的 Apache Pulsar 最佳实践
2019-04-28
索引失效的场景有哪些?索引何时会失效?
2019-04-28
面试官:详细说说 bin log、redo log,我...
2019-04-28
一个完整的、全面 k8s 化的集群稳定架构(值得借鉴)
2019-04-28