《编程题》找出数组中出现次数超过一半的数(时间复杂度O(n),空间复杂度为O(1))
解析:该题目可以用mapreduce的wordcount思想做,就是存储键、值对,键存数字,值存该数字出现的次数,当然需要用一个变量记住出现次数超过一半的数了,说完了,开始撸起袖子干了。
public static int findAppearMoreThanHalf(int [] arr){int num=0;//存储出现次数超过一半的数Map<Integer,Integer> map = new HashMap<>();for(int i:arr){if(!map.containsKey(i)){//不包含该数,第一次出现map.put(i,1);}else {int n=map.get(i);n++;//出现过了的就取出+1,再放回去map.put(i,n);if(n>(arr.length/2)){//出现次数超过一半的话num=i;}}}return num;}
《编程题》找出数组中出现次数超过一半的数(时间复杂度O(n),空间复杂度为O(1))相关推荐
- 找出数组中出现次数超过一半的数
算法--找出数组中出现次数超过一半的数 每当我看到经典的算法题,就怀念高中,感觉很多算法题就是高中的题目,谁叫哥只读了个专科,高数基本相当没学. 有空要看看高数啊,想当年数学那是相 ...
- 用Python找出数组中出现次数超过一半的数
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 计数+比较 不考虑效率,采用最简单的办法,遍历数组,使用 List 的 count() 方法统计元素出现的次数: def more_th ...
- 快速找出数组中出现次数超过一半的数字
"只要不是特别大的内存开销,时间复杂度比较重要.因为改进时间复杂度对算法的要求更高." --吴斌(NVidia,Graphics Architect) 同样是查找,如果是顺序查找需 ...
- 利用HashMap找出数组中出现次数最多的元素及其次数
我在牛客网上刷题时遇到了这道题目,因为初学Java不久,对Java的应用还不熟悉,刚开始用C语言做没做出来(我太菜了...),接着百度发现竟然可以用HashMap做,仔细一想发现这真是一个好办法(为什 ...
- java数组出现次数最多的数_找出数组中出现次数最多的那个数——主元素问题...
方法一:以空间换时间,可以定义一个计数数组int count[101],用来对数组中数字出现的次数进行计数(只能针对数组中数字的范围1~100),count数组中最大的元素对应的下标,即为出现次数最多 ...
- 找出数组中第k大小的数,输出数所在的位置
找出数组中第k大小的数,输出数所在的位置 /*写一段程序,找出数组中第k大小的数,输出数所在的位置.例如{2,4,3,4,7}中,第一大的数是7,位置在4. 第二大.第三大的数都是4,位置在1.3随便 ...
- 找出数组中第k大的数
给定一个数组,找出数组中第k大的数.其实现代码如下: package com.threeTop.www;/*** 找出数组中第k大的数* @author wjgs**/ public class Fi ...
- Java找出数组中第K大的数
题目描述 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在. 测试样例: [1,3,5 ...
- 28 数组中出现次数超过一半的数MoreThanHalfNum输入一个一维数组
题目:数组中出现次数超过一半的数 要求:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超 ...
最新文章
- 企业云桌面-07-安装虚拟机-001-Win701
- mysql againts函数_MariaDB / MySQL TO_SECONDS和AGGREGATE函数
- MathType中的一些精彩技巧
- HDU 1559 最大子矩阵
- centos7 修改默认yum源为国内的阿里云
- 《TensorFlow深度学习应用实践》学习笔记1
- 判断单链表是否中心对称算法
- 最新免费ip代理分享
- 联想服务器自动关机_联想电脑老是自动关机怎么回事
- 零基础该如何学好3D建模,学些什么,达到什么标准才能入行?
- mysql int 时间戳转换_MySQL时间戳相互转换
- linux静默安装oracle11g数据库教程
- 英语单词:flight; fly
- 现在有很多第三方的SDK来做直播,那么我们改选择哪一种?
- sql注入--POST注入
- 【电磁】基于matlab求解瞬变电磁TEM层状介质正演【含Matlab源码 2164期】
- 网络工程与组网技术——第一讲
- 【Centos各版本下载地址7.6,7.5】
- 深入剖析!关于手机锂电池充电的知识
- 山东自考c语言程序设计停考了吗,2019山东自考停考专业有哪些
热门文章
- C++ map 使用详解(含C++20新特性)
- C++学习笔记:(一)面向对象 类与对象
- 01.elasticsearch metric aggregation 查询
- 蓝桥练习-算法训练 素因子去重
- L1-005 考试座位号 (15分) C语言实现(18行代码AC!)
- NIO Buffer
- linux完整面授视频,Linux面授实战
- linux c语言 信号,linux下基于C语言的信号编程实例
- 操作篇 DHCP协议学习与应用
- aes 加密_Jmeter处理AES加密接口