java 求数组中重复元素最多的数 空间换时间解法 Map映射表法
来源:互联网 发布:手机比特币挖矿软件 编辑:程序博客网 时间:2024/06/05 00:10
找出数组中重复元素最多的数:
两种方法:1.采用空间换时间:该方法浪费内存,建议不要使用
2.使用Map映射表
package datastruct.usearray;import java.awt.Container;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Scanner;public class FindMostRepeatEle {//采用空间换时间:privatestatic voidmethod1(int array[]) {int n=array.length;//count用来存放元素的个数,并将count初始化都为0.int count[]=new int[100]; //注意:array的元素值,只能是0——99for (int i = 0; i < n; i++) {count[array[i]]++; //array的元素值,作为count的下标,这样就可以得到重复的个数}int maxCount=Integer.MIN_VALUE;//最大的重复个数int max=Integer.MIN_VALUE;//记录count的下标,即:array[]中的数值for (int i = 0; i < 100; i++) {if (count[i]>=maxCount) {maxCount=count[i];max=i;}}System.out.println("方法一:重复元素最多的数为:"+max+" 重复了"+maxCount+"次");}//采用map映射表的方法:利用key是唯一的记录数组的元素,利用value记录该元素的个数private static void method2(int array[]){Map<Integer, Integer> map=new HashMap<Integer, Integer>();for (int i = 0; i < array.length; i++) {// 将数组元素加入到map中if (map.containsKey(array[i])) {//若map包含该元素,则value加1,否则value为1map.put(array[i], map.get(array[i])+1);}else {map.put(array[i], 1);}}Iterator iterator=map.entrySet().iterator();// 迭代器找到value最大值,即为:重复元素最多的个数int maxCount=Integer.MIN_VALUE;//记录出现次数最多的个数int max=Integer.MIN_VALUE; //记录某个出现最多次数的元素while (iterator.hasNext()) { Map.Entry entry=(Entry) iterator.next(); int key=(int) entry.getKey(); int val=(int) entry.getValue(); if (val>maxCount) { maxCount=val;max=key;}}System.out.println("方法二:重复元素最多的数为:"+max+" 重复了"+maxCount+"次");} public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("输入数组元素个数:"); int n=scanner.nextInt(); System.out.println("输入"+n+"个数组元素:"); int array[]=new int [n]; for (int i = 0; i <n; i++) {array[i]=scanner.nextInt();} method1(array); method2(array);}}
运行结果:
0 0
- java 求数组中重复元素最多的数 空间换时间解法 Map映射表法
- 求数组中重复元素最多的数
- 数组中重复元素最多的数
- 求数组中重复次数最多的元素
- 数组中重复次数最多的元素
- 数组中重复次数最多的元素
- 数组中重复次数最多的数
- java 找出n个元素数组中重复次数最多的数(假设出现次数大于n/2)
- java 求数组中重复元素的个数
- PHP获取数组中重复最多的元素的方法
- 找出数组中重复次数最多的元素并打印
- 找出数组中重复次数最多的元素并打印
- 找出数组中重复次数最多的元素并打印
- 找出整型数组中重复次数最多的元素
- 找出数组中重复次数最多的元素
- 求数组中唯一重复的元素
- 求数组中唯一重复的元素
- 求数组中唯一重复的元素
- scroll滚动事件在浏览器中无效
- 500强面试题
- 九度1019:简单计算器(Stack)
- 日常总结
- win10系统配置jdk
- java 求数组中重复元素最多的数 空间换时间解法 Map映射表法
- 进程(1)进程的内存映像
- 车载以太网技术(一)
- 工具类 将<InputStream> 字节输出流--->转换成-->String类型
- JDK动态代理
- poj 1953 World Cup Noise
- Android 响应式编程 RxJava2 完全解析
- csv文件导入Neo4j(包括结点和关系的导入)
- Remove Duplicates from Sorted Array II