找出数组中出现次数最多的数字&找出数组中只出现一次的数字
来源:互联网 发布:c语言的编程环境 编辑:程序博客网 时间:2024/05/19 02:26
用map存储,key为数组中的元素,value为元素出现的次数,若数组中的元素都只出现了一次,则map.put(num[i],1),否则,每当检测到map中的key已经包含有数组元素时,将map中与之的value值加1,表示次数+1,最后再在map中找出value最大key,输出。
package array;import java.util.*;/* * 找出数组中出现次数最多的数字 * 思路:用一个HashMap记录每个数字出现的次数 */public class MostFrequentInArray { public static void main(String[] args){ int [] num={1,1,1,1,2,2,2,2,3,3,3,3,3,3,3,34,4,4,4,4,5,5,6,67,7,7,89}; System.out.print(getMostFrequent(num));//print 3 } private static int getMostFrequent(int[] num) { int count=1;//数字出现的次数 Map<Integer,Integer> m=new HashMap<>(); for (int i=0;i<num.length;i++){ if(m.containsKey(num[i])){ m.put(num[i],m.get(num[i])+1); }else{ m.put(num[i],count); } } int result=0; int most=0;//找出map中出现次数最多的元素 Iterator iter=m.entrySet().iterator(); while(iter.hasNext()){ Map.Entry entry =(Map.Entry)iter.next(); int key=(Integer)entry.getKey(); int val=(Integer)entry.getValue(); if(val>most){ result=key; most=val; } } return result; }}
对于找出数组中只出现了一次的数字来说,可以利用异或这个巧妙的办法,由于任何一个数字和自己本身异或都等于0,所以从头到尾一次异或数组中的每一个元素,那么出现两次的数字就会被全部抵消掉,最终的结果也就是所要求的只出现一次的那个数字啦。代码很简单 look
package array;/* * 找出数组中只出现了一次的数字, * 题目:一个整型数组中,除了一个数字,其他数字都出现了两次,找出这个数字,要求时间复杂度为O(n).空间复杂度为O(1) * 思路:异或运算,相同为0 不同为1 */public class FindNotDouble { public static void main (String [] args){ int [] num={1,1,2,2,3,3,5,6,6}; System.out.print(findnotdouble(num)); } private static int findnotdouble(int[] num) { int result=num[0]; for (int i=1;i<num.length;++i) result=result^num[i]; return result; }}
0 0
- 找出数组中出现次数最多的数字&找出数组中只出现一次的数字
- 找出数组中出现次数最多的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字--总结
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- code[vs] 1154能量项链(成环的区间dp)
- HDU5546 Ancient Go(深搜DFS)(2015CCPC)
- L2-021. 点赞狂魔
- bzoj4843
- VR系列——Oculus Rift 介绍指南:四、Oculus Rift的硬件设置
- 找出数组中出现次数最多的数字&找出数组中只出现一次的数字
- DOM4J XML解析
- POJ 2411 Mondriaan's Dream 状态压缩
- 为bookStore添加权限【动态代理和注解】
- fl2440 内核移植
- tkinter的variable属性
- 数组拷贝操作 从数组默认下标 到拷到我指定的长度
- 数据库中常用的锁及其应用场景
- (转载/侵删)mvc与三层结构终极区别