java找出一个数组中出现次数最多且最大的那个元素
来源:互联网 发布:淘宝活动日历 编辑:程序博客网 时间:2024/06/08 06:22
比如,一个数组为:[1, 1, 3, 5, 6, 6, 6, 8, 8, 9, 2, 8, 3 ]同时符合最大且次数最多的就是8。
思路:最简单的办法就是采用两层for循环去遍历,时间复杂度为O(n2),其次可以
先用快速排序将数组排序,然后再找次数最多且最大的数,时间复杂度O(NLogN),
第三种方法可以采用HashMap,这种方式时间复杂度为O(N),但是需要空间复杂度O(N)
下面将采用第三种方式:
代码:
package d79;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;public class MaxCountOfArray {public static void main(String[] args) {int[] arr = new int[] { 1, 1, 3, 5, 6, 6, 6, 8, 8, 9, 2,8, 3 };Map<Integer, Integer> map = new HashMap<Integer,Integer>();for (int i = 0; i < arr.length; i++) {if (map.containsKey(arr[i])) {map.put(arr[i], map.get(arr[i]) + 1);} else {map.put(arr[i], 0);}}int count=-1;int max=Integer.MIN_VALUE;Iterator<Entry<Integer, Integer>> iter = map.entrySet().iterator();while (iter.hasNext()) {Map.Entry<Integer,Integer> entry = iter.next();if (entry.getValue()>count||(entry.getValue()==count&&entry.getKey()>max)) {max=entry.getKey();count=entry.getValue();}}System.out.println(max);}}
代码:
public class MaxCountOfArray {/** * 找出一个数组中一个数字出现次数最多的数字 用HashMap的key来存放数组中存在的数字,value存放该数字在数组中出现的次数 */public static void main(String[] args) {int[] array = { 2, 1, 2, 3, 4, 5, 2, 2, 2, 2 };// map的key存放数组中存在的数字,value存放该数字在数组中出现的次数HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();for (int i = 0; i < array.length; i++) {if (map.containsKey(array[i])) {int temp = map.get(array[i]);map.put(array[i], temp + 1);} else {map.put(array[i], 1);}}Collection<Integer> count = map.values();// 找出map的value中最大的数字,也就是数组中数字出现最多的次数int maxCount = Collections.max(count);int maxNumber = 0;for (Map.Entry<Integer, Integer> entry : map.entrySet()) {// 得到value为maxCount的key,也就是数组中出现次数最多的数字if (maxCount == entry.getValue()) {maxNumber = entry.getKey();}}System.out.println("出现次数最多的数字为:" + maxNumber);System.out.println("该数字一共出现" + maxCount + "次");}}
2 0
- java找出一个数组中出现次数最多且最大的那个元素
- java找出一个数组中出现次数最多的那个元素
- java找出一个数组中出现次数最多的那个元素(用HashSet很新颖)
- java找出一个数组中出现次数最多的那个元素
- 找出一个列表中出现次数最多的元素
- Majority Element 找出一个数组中出现次数最多的元素
- Java-实现找出数组中一个数字出现次数最多的数字
- java 找出n个元素数组中重复次数最多的数(假设出现次数大于n/2)
- J2EE面试题之 java如何找出一个int数组中出现次数最多的数字以及出现次数?
- 统计一个无序数组中出现次数最多的元素
- 统计一个无序数组中出现次数最多的元素
- 面试题:给出一数组,求这数组中出现最多次数的值且最大
- 面试题:给出一数组,求这数组中出现最多次数的值且最大
- 找出一个数组中出现次数超过一半的元素
- 找出数组里面元素出现次数最多的问题
- 找出数组里面元素出现次数最多的问题
- 求一个数组中重复元素出现最多值,最大的元素及出现次数,次数相同时,取最大值,优先考虑次数
- python 找出序列中出现次数最多的元素方法。
- iOS学习(二十一)Objective-C SEL和IMP类型
- MATLAB学习笔记
- Multiply Strings
- __all__
- Tableau--使用参数为报表增加一个统计周期筛选条件(日,周,月,季度,年)
- java找出一个数组中出现次数最多且最大的那个元素
- Python 面向对象(教程4)
- softmax函数
- Combination Sum III
- Windows主机端与自定义USB HID设备通信详解
- mipi 调试经验
- magento cache
- C++复习要点总结之——友元
- Python File(文件) 方法(教程5)