-
数组:找出数组中重复元素最多的数
2018-07-29 17:00:38使用Map映射表记录每一个元素出现的次数,然后判断次数大小,进而找出重复次数最多的元素。key表示数组的元素,value表示这个元素在数组中出现的次数。最后对map进行遍历。 代码: /** * 使用map(不允许重复的...题目描述:
如何找出数组中重复元素最多的数
思路:
使用Map映射表记录每一个元素出现的次数,然后判断次数大小,进而找出重复次数最多的元素。key表示数组的元素,value表示这个元素在数组中出现的次数。最后对map进行遍历。
代码:
/** * 使用map(不允许重复的),key是a中元素的值,value是元素出现的次数 * @param a * @return */ private int findMostFrequentInArray(int[] a) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for(int i=0; i<a.length; i++ ){ if(map.containsKey(a[i])){ map.put(a[i], map.get(a[i])+1); }else{ map.put(a[i], 1); } } int index=0;//数组中重复元素最多的数 int val = 0;//最多的次数 Iterator<Entry<Integer, Integer>> iterator = map.entrySet().iterator(); while(iterator.hasNext()){ Entry<Integer, Integer> next = iterator.next(); int key = next.getKey(); int value = next.getValue(); if(value > val){ index = key; val = value; } } return index; }
测试代码:
@Test public void test1(){ int[] a = {1,1,1,1,1,2,2,4,4,4,4,5,5,6,6,6}; System.out.println(findMostFrequentInArray(a)); }
-
找出数组元素中重复元素最多的数
2018-07-17 13:10:31再判断次数大小,进而找出重复次数最多的数 Map取数据常用方法: 1、先拿到当前map所有的key 根据key迭代出所有的value Set<Integer> set = map.keySet(); Iterator<Integer>...算法思路:
使用Map映射表存放每一个数据及出现的次数
再判断次数大小,进而找出重复次数最多的数Map取数据常用方法:
1、先拿到当前map所有的key 根据key迭代出所有的value
Set<Integer> set = map.keySet(); Iterator<Integer> it = set.iterator(); while(it.hasNext()){ Integer key = it.next(); System.out.println("key:" + key + ", value:" + map.get(key)); }
2、 Map.Entry是Map的一个工具类,提供了从map中读取一行数据的读取,一次可以迭代出map集合中的键值对
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<Integer, String> entry = it.next(); System.out.println("key:"+entry.getKey() + ", value:"+entry.getValue()); }
实现代码:
package JBArray; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; /** * 找出数组中重复元素出现最多的数 * @author Dan * */ public class findMostFrequenInArray { /** * 思路描述: * 使用Map映射表存放每一个数据及出现的次数 * 再判断次数大小,进而找出重复次数最多的数 * * @param a * @return */ public static int findMostFrequenInArray(int[] a){ int result = 0; int size = a.length; if(size == 0){ return Integer.MAX_VALUE; } //记录每个元素出现的次数 Map<Integer,Integer> m = new HashMap<Integer, Integer>(); for (int i = 0; i < size; i++) { if (m.containsKey(a[i])) { m.put(a[i], m.get(a[i])+1);//已有该元素,直接累加 } else{ m.put(a[i], 1);//插入该元素,次数为1 } } //找出出现次数最多的元素 int most = 0; Iterator iter = m.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); int key = (int) entry.getKey(); int val = (int) entry.getValue(); if (val>most) { result = key; most = val; } } return result; } public static void main(String[] args) { int[] arr = {1,5,3,3,4,4,4}; int maxFreNum = findMostFrequenInArray(arr); System.out.println(maxFreNum); } }
-
C语言 找出数组中重复数字出现最多的数
2018-12-02 19:53:08在堆区申请一个超级大的一维数组空间,用它的下标存原数组的数。。出现一次对应下标的值+1…觉得这样方便的不然就是不停的遍历…暂时没想到其他办法…就投机一下。 int Find(int *pStr,int len,int *pa) { int i; ...在堆区申请一个超级大的一维数组空间,用它的下标存原数组的数。。出现一次对应下标的值+1…觉得这样方便的不然就是不停的遍历…暂时没想到其他办法…就投机一下。
int Find(int *pStr,int len,int *pa) { int i; int *p1 = pStr; for(i = 0;i<len;i++) { //printf("=%d=",p1[i]); int index = p1[i]; pa[index]+=1; //printf("pa[%d] = %d ",index,pa[index]); } int max = pa[0]; int max1 = 0; for(i =0;i<10000000;i++) { if(pa[i]>max) { max = pa[i]; max1 = i; } } return max1; } int main(int argc, char const *argv[]) { int *pa = (int *)malloc(sizeof(int)/sizeof(char)*10000000); if(NULL == pa) { printf("error\n"); } int s[]={1,2,5,3,32,44,3,4,3,9,10,9,9,9,9,99,9}; int length = sizeof(s)/sizeof(int); int max = Find(s,length,pa); printf("max = %d\n",max); free(pa); pa = NULL; if(NULL == pa) printf("success\n"); return 0; }
-
JS 找出数组中重复次数最多的一个数字
2021-01-14 19:46:45方法一:采用一个数字来储存每个数字出现的次数 let a = [1,2,3,3,2,2,3] let countArr = []; //定义个数组来储存每个数字出现的次数,数组下标是对应的数字 for(let j=0; j<a.length; j++){ // 判断是否第一...方法一:采用一个数字来储存每个数字出现的次数
let a = [1,2,3,3,2,2,3] let countArr = []; //定义个数组来储存每个数字出现的次数,数组下标是对应的数字 for(let j=0; j<a.length; j++){ // 判断是否第一次出现 if(j === a.indexOf(a[j])){ countArr[a[j]] = 1 }else{ countArr[a[j]] = countArr[a[j]] + 1 } } let maxNum = 0 //储存数字的最多次数 for(let i=0; i<countArr.length; i++){ if(countArr[i] !== undefined && countArr[i] > maxNum){ maxNum = countArr[i] } } for(let j=0; j<countArr.length; j++){ if(maxNum === countArr[j]){ console.log('出现最多的数字为:',j); } }
方法二:采用一个对象来存储,键表示该数字,值表示给数字出现次数
let a = [1,2,3,3,2,2,3,12,33,12,12,33] let obj = {} //采用键值对来存储,键表示该数字,值表示给数字出现次数 let maxNum = 0 a.forEach((item,index) => { if(a.indexOf(item) == index){ obj[item] = 1 }else{ obj[item] = obj[item] + 1 } }) //找出谁是最大值 for(let i in obj){ if(obj[i] > maxNum){ maxNum = obj[i] } } //根据最大值输出对应的数字 for(let j in obj){ if(obj[j] === maxNum){ console.log('出现次数最多的数字为',j,' ,次数为',obj[j]); } }
-
JS 找出数组中重复次数最多的一个元素
2020-10-20 22:41:03var arr = [1,1,1,2,2,2,2,2,2,2,3,3,3,4,4,5,6,7,7,8];... }) for(let r in obj) { if(obj[r]>maxNum){ maxNum = obj[r] } } // console.log(`最多重复的数${maxName},重复次数为:${maxNum}`) -
JAVA代码—算法基础:找出一维数组中重复次数最多的元素以及重复的次数
2018-02-13 22:17:48找出一维数组中重复次数最多的元素以及重复的次数 关于数组的算法问题层出不穷,无论是一维数组还是二维数组。此类问题中,简单的、复杂的都有,而且变化很多。 下面从一个一维数组的问题开始。 问题描述:找出一... -
数据结构——数组(3) 在有序数组中找出重复的次数最多的数
2018-07-23 22:19:23算法思想:目标数组array[length],是一个有序数组,比如int array[]={1,1,2,2,4,4,4,4,4,5,5,6,10};总共有13个元素,其中数字最多的数是4,总计5次。 因此,额外定义一个数组count[length],并将该数组初始化为0... -
找出一个数组中重复次数最多的字符暨找出Map中的最大Value及其对应的Key
2016-06-15 21:19:11rt:找出Map中的最大Value及其对应的Key,常用于找出一个数组中重复次数最多的字符import java.util.*; public class KeyOnMaxValue{ public static void main(String[] args) { Map mp = new HashMap(); int ... -
C# 找出数组中重复次数最多的数值
2017-04-17 11:03:00给定一个int数组,里面存在重复的数值,如何找到重复次数最多的数值呢? 这是在某社区上有人提出的问题,我想到的解决方法是分组。 1、先对数组中的所有元素进行分组,那么,重复的数值肯定会被放到一组中; 2、将... -
如何找出数组中重复次数最多的数
2016-05-12 22:00:03数组{1,1,2,2,4,4,4,4,5,5,6,6,6},问题是找出出现...每个关键字只能在map中出现一次,第二个称为该关键字的值,来记录每一个元素出现的次数,然后判断次数的大小,进而找出重复次数最多的元素。 程序实例如下,环境是V -
找出一个数组中重复次数最多的数
2016-07-19 14:09:00使用map映色表,通过引入map表来记录每一个元素出现的次数。 bool find_most_frequency_number(int *arr, int size, int &val) { if (a == NULL || size ) return false; map m; for (int i = 0; i ; i++) { ... -
python小程序 练习二(找出数组中重复次数最多的元素)
2019-10-16 21:54:04二、一组数组中找出重复次数最多的元素 1、python返回一个列表中出现次数最多的元素 思路:for循环遍历字符串中的元素,将第一个元素置为重复最多的元素,之后分别比较每一个元素的count,循环比较,得出count最大的... -
Java学习手册:(数据结构与算法-数组)如何找出数组中重复元素最多的数?
2019-08-05 10:16:24问题描述:对于数组{1,5,4,3,4,4,5,4,5,5,6,6,6,6,6},元素1出现的次数为1次,元素3出现的次数...通过Map来记录每一个元素的出现次数,然后判断次数大小,进而找出重复次数最多的元素。 package com.haobi; impo... -
找出数组中重复次数最多的元素
2017-01-07 18:09:24最简单的方法就是定义一个数组b把相同的元素放到对应位置,如果数组a的元素等于这个下标,那么这个下标对应的值就加1,最后找出这个数组中最大值返回下标,这个方法浪费很大空间,不推荐。新的思路:采用map,定义一... -
找出数组中重复次数最多的数值
2014-11-09 11:57:00给定一个int数组,里面存在重复的数值,如何找到重复次数最多的数值呢? 这是在某社区上有人提出的问题,我想到的解决方法是分组。 1、先对数组中的所有元素进行分组,那么,重复的数值肯定会被放到一组中; 2、将... -
数组中重复次数最多的数
2016-06-23 22:24:51题目:如何找出数组中重复次数最多的数。 方法一:以空间换时间,即hash法。可以定义一个数组 int count[MAX],并将其数组元素都初始化为0;然后对原数组array[ ]进行遍历,并执行 count[ array[ i ] ]++ 操作;... -
找出数组中重复次数最多的数
2013-09-01 17:19:52从第一个数开始,与它后面的数比较,如果相同,计算+1,如果不等,计数置为1.同时保持此时的计数次数和此时的元素; #include int Search(int a[],int len) { int max=0;//保持到目前为此出现次数最多的那个数 ... -
找出数组中重复次数最多的元素并打印
2014-04-13 22:18:00得练习怎么用java实现哇,只知道思想是不行滴,知道思想能用C/C++实现也是不行的,因为要应聘的职位是java哇,不会用...这个不用先排序,一个直观的方法是用Hash(用数组实现) 1 int MAX=100; 2 int num(int[... -
找出一个int类型数组中的最大数、最小数、重复次数最多的任意一个数
2019-07-11 13:57:10import java.util....//找出一个int类型数组中的最大数、最小数、重复次数最多的任意一个数 public class MaoPao { int tmp = 0; void maxArr(int[]a){ for (int i = 0; i < a.length; i++) { if (tm... -
问题8:如何找出数组中重复次数最多的数?
2013-09-04 23:02:52一种方法是以空间换时间,可以定义一个数组 int count[MAX],并将其...//该函数的作用是获得数组中最大的数,并将该数首次出现的索引赋值给num保存 int getMaxNum(int* arr, int len, int &num) { int index = arr -
利用map映射表找出数组出现的最多重复的次数
2020-07-21 23:01:43使用map映射表,通过引入map表,其中的一个为关键字,每个关键字在map中只能出现一次,第二个为该关键字对应的值来记录每一个元素出现的次数,判断次数的大小,进而找出重复次数最多的元素。 bool ... -
求一个数组重复出现次数最多的元素以及下标位置
2016-07-10 01:06:35/*找出一个数组里面出现最多的一个和这个数组出现的位置*/ var array=["a","x","b","d","m","a","k","m","p","j","a"];//原数组数; var array1=[];//定义一个array1数组,用于复制array数组; var array2=[];//定义一... -
8. 返回数组里出现次数最多的数字_【剑指Offer】 数组中重复的元素
2020-12-29 04:27:19题目:面试题3在一个长度为n的数组里的所有数组都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了多少次。...从排序的数组中找出重复的数字是一件很容易的...
收藏数
137
精华内容
54