数组中出现次数超过一半的数字
数组 数字 出现 次数 超过 一半
2023-09-14 08:57:47 时间
题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为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 if len(numbers) == 0: return 0 if len(numbers) == 1: return numbers[0] d1 = {} for i in numbers: if i not in d1.keys(): d1[i] = 1 else: d1[i] += 1 mid = len(numbers)//2 for k,v in d1.items(): if v > mid: return k return 0 p = Solution() ret = p.MoreThanHalfNum_Solution([1,2,3,2,2,2,5,4,2]) print ret
结束!
相关文章
- 数组中的重复数字
- java数组排序去重_JAVA数组去重排序
- 2022-09-07:给你一个由正整数组成的数组 nums 。 数字序列的 最大公约数 定义为序列中所有整数的共有约数中的最大整数。 例如,序列 [4,6,16
- C语言 数组倒序输出数字「建议收藏」
- 剑指 Offer 03. 数组中重复的数字(原地算法)「建议收藏」
- 剑指offer No.50 数组中重复的数字
- 牛客刷题系列之进阶版(搜索旋转排序数组,链表内指定区间反转)
- js数组删除某一个元素_删除数组中重复元素
- JS数组reduce()方法详解及高级技巧
- 剑指37-数字在排序数组中出现的次数
- 剑指40-数组中只出现一次的数字
- 2022-11-28:给定两个数组A和B,比如 A = { 0, 1, 1 } B = { 1, 2, 3 } A[0] = 0
- 剑指 offer|11. 旋转数组的最小数字
- 【剑指offer|5.在排序数组中查找数字I】
- Java 数组到 HashMap 之算法解释详解编程语言
- JavaScript学习总结(八)——JavaScript数组详解编程语言
- shell数组
- 使用MySQL数组进行高效数据处理(mysql_array)
- 小议Function.apply()之二------利用Apply的参数数组化来提高JavaScript程序性能
- js自带函数备忘数组
- javascript浏览器判断绑定事件arguments转换数组数组遍历
- js中将具有数字属性名的对象转换为数组
- perl数组的多数字下标示例代码
- JavaScript实现找出数组中最长的连续数字序列