应该怎么用map找出次数最多的元素

例如这个题目 应该怎么做
After celebrating the midcourse the students of one of the faculties of the Berland State University decided to conduct a vote for the best photo. They published the photos in the social network and agreed on the rules to choose a winner: the photo which gets most likes wins. If multiple photoes get most likes, the winner is the photo that gets this number first.

Help guys determine the winner photo by the records of likes.

Input
The first line of the input contains a single integer n (1 ≤ n ≤ 1000) — the total likes to the published photoes.

The second line contains n positive integers a1, a2, ..., an (1 ≤ ai ≤ 1 000 000), where ai is the identifier of the photo which got the i-th like.

Output
Print the identifier of the photo which won the elections.

Examples
input
5
1 3 2 2 1
output
2
input
9
100 200 300 200 100 300 300 100 200
output
300

0

4个回答

 #include <map>
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    map<int, int> _map;
    int n = 0;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int x = 0;
        cin >> x;
        _map[x]++;
    }
    int max = 0;
    int maxval = 0;
    for (map<int, int>::iterator ltr = _map.begin(); ltr != _map.end(); ltr++)
    {
        if (ltr->second >= max)
        {
            maxval = ltr->first;
            max = ltr->second;
        }
    }
    cout << maxval;
    return 0;
}
2
caozhy
贵阳马善福专挖游泳池 回复shadowcw: 如果问题解决麻烦采纳下吧。
3 年多之前 回复
shadowcw
Eikko 谢谢大神
3 年多之前 回复

用元素做map的key 遍历数据 把数据做key对应的map value加一 最后统计

1
shadowcw
Eikko 回复oyljerry: 那如何找到那个是第一个满足最大值的 是比较下标吗
3 年多之前 回复

帮你写了一个,休再说看不懂。

1
caozhy
贵阳马善福专挖游泳池 回复shadowcw: 点下我回答右边的采纳按钮,谢谢
3 年多之前 回复
shadowcw
Eikko 非常感谢啊
3 年多之前 回复
0
shadowcw
Eikko 这个博客我看过 看不懂 能力有限啊 不好意思
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Map--读"找出数组中重复次数最多的元素并打印"有感Map的使用
目的:了解Map的containsKey的是用以及Map的遍历:      import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; /** * 从一数组中找出出现最多的字符 引发对Map的总结 1.containsKey(Obj...
从HashMap中找出出现次数最多的键
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Scanner; public class Main{ public static void...
找出数组中重复次数最多的元素
思路: 最简单的方法就是定义一个数组b把相同的元素放到对应位置,如果数组a的元素等于这个下标,那么这个下标对应的值就加1,最后找出这个数组中最大值返回下标,这个方法浪费很大空间,不推荐。新的思路:采用map,定义一个map,初始值默认为0,循环遍历数组a,把map中key值是a中此时元素的value加1,初始定义一个val假设map[val]最大,最后每次遍历都和这个值比较,如果大于这个值,那么v
找出数组元素中重复元素最多的数
算法思路:      使用Map映射表存放每一个数据及出现的次数      再判断次数大小,进而找出重复次数最多的数      Map取数据常用方法:     1、先拿到当前map所有的key 根据key迭代出所有的value Set&amp;lt;Integer&amp;gt; set = map.keySet(); Iterator&amp;lt;Integer&amp;gt; it = set.iterato...
coding | c++ - map的使用: 出现次数最多的数
问题描述   给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式   输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。   输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。 输出格式   输出这n个次数中出现次数最多的数。如果这样的数有多个
Java Map应用之求一个字符串中字符出现的次数?并打印出出现次数最多的那对键值对
求一个字符串中 字符出现的次数,  并打印出 出现次数最多的那对 键值对   思路:     ①:通过 char[] toCharArray() 将字符串保存到字符数组中     ②:遍历字符数组     ③:将数组里的每一个不重复的字符作为键保存到map中,将每一个相同字符的数量作为值保存到map中     ④:求出出现次数最多的键值对 /** * 求一个字符串中 字符出现的次数? ...
找出一个列表中出现次数最多的元素
在实现knn算法中遇到的问题,如何从一个列表中找出出现次数最多元素,方法是:字典 + 字典get方法统计次数 + 字典排序找出最大。 num_list = np.random.randint(0,10,100, np.int) num_dict = {} # 统计每个元素出现的次数 for i in range(len(number)): num
java找出一个数组中出现次数最多的那个元素(用HashSet很新颖)
方法一: [java] view plain copy import java.util.*;   public class TestMain {       private static HashMap map;       public static HashMap mostEle(String[] strArray) {      
java找出一个数组中出现次数最多且最大的那个元素
比如,一个数组为:[1, 1, 3, 5, 6, 6, 6, 8, 8, 9, 2, 8, 3 ]同时符合最大且次数最多的就是8。 思路:最简单的办法就是采用两层for循环去遍历,时间复杂度为O(n2),其次可以 先用快速排序将数组排序,然后再找次数最多且最大的数,时间复杂度O(NLogN), 第三种方法可以采用HashMap,这种方式时间复杂度为O(N),但是需要空间复杂度O(N) 下面
统计数组中出现次数最多的元素并输出
实验过程中遇到一个实际问题:需要统计出10次计数的值中出现最多的一个数,比如输入34 35 35 35 34 35 35 35 34 33 十个数,要求最终输出35.如果出现两个数同样多,则输出两个元素中较小的那一个(也可以是较大的那一个,但是必须确定是其中一种)。 代码中采用5个元素以简化: #include int main() { int n = 5; int a[5] ={31,
零起点学算法——找出一个数组中出现次数最多的那个元素
对于大家都能想到的空间换时间这种想法不再赘述,这种方法对于数量级较小还可起效,但对于数据范围大的话无法保证。接下来浅谈一下我的想法——先排序,再统计。由于初学ACM,无法保证算法的高效,只代表我的拙见,未考量空间度和复杂度,如有不合理之处,还请指出,不吝赐教。Description找出一个数组中出现次数最多的那个元素Input第一行输入一个整数n(不大于20) 第二行输入n个整数多组数据Outpu...
#统计一个列表中出现次数最多的元素
def max_count(lt): # 定义一个字典,记录元素及次数 d = {} # 记录最大次数的元素 max_key = None for i in lt: # 判断字典中是否没有该元素 if i not in d: # 计算该元素在列表中出现的次数 count = ...
c语言实现找出数组中出现次数最多的元素
这道题的来源是一年的统考考研数据结构题,我还找了半天,没找到是哪一年的。然后这个的话,我看了一下答案感觉他那个思路不是很好理解,然后我就看到了这个思路,发现思路得很好,值的积累。
Python实用黑科技——找出序列里面出现次数最多的元素
需求: 如何从一个序列中快速获取出现次数最多的元素。方法: 利用collections.Counter类可以解决这个问题,特别是他的most_common()方法更是处理此问题的最快途径。比如,现在有一个单词的序列,你想快速获取哪个单词出现频率最高,就可以这么做:In [22]: words = ['look', 'into', 'my', 'eyes', 'look', 'into',
找出整型数组中重复次数最多的元素
#include #include #include using namespace std; struct number { int value; int count; }; int find(const vector v,int value) { for (int i = 0; i < v.size(); i++) { if (v[i].value == value)
java找出一个数组中出现次数最多的那个元素
方法一: import java.util.*; public class TestMain { private static HashMap map; public static HashMap mostEle(String[] strArray) { map = new HashMap(); String str = ""; int
【算法笔记之数组】找出数组中出现次数最多的数
找出数组中出现次数最多的数 法一: 遍历计数法 //找出出现次数最多的数字 方法一 public static void candidate (int[] array) // 找出数组中出现次数最多的那个数 { int[] count = new int[101]; // 计数数组,每个元素的默认值为0 ...
HashMap 排序,按照 value,找出字符出现次数最多的
方法1static void doString(String input) { Map<Character, Integer> result = new HashMap<Character, Integer>(); for (int i = 0; i < input.length(); i++) { char key = input.charAt(i);
【谷歌面试题】找出二叉查找树中出现频率最高的元素
找出二叉查找树中出现频率最高的元素。树中结点满足left->val val val。如果多个元素出现次数相等,返回最小的元素。 在一个有序数组中,我们查找出现频率最高的元素,很简单,顺序扫描一遍即可统计出。那么我们对二叉查找树也可以用类似方式统计,因为中序遍历序列就是有序序列,所以我们在中序遍历的过程中就可以统计出出现频率最高的元素。 class TreeNode { public: i
python 找出序列中出现次数最多的元素方法。
怎样找出一个序列中出现次数最多的元素呢? 1:超极简单的方法 from collections import Counter words = [ 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes', 'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'a
Java面试宝典——找出数组中重复元素最多的数
package demos.array; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * @author wyl * @time 2018年7月9日下午3:17:24 */ public class FindMostInArray { /** * 方法一:空间换时间...
js获取字符串或者数组中出现重复最多的元素和总共出现的次数
目标参数若是字符串,可通过split()方法转换为数组 var str=&quot;qwertyuiopasdfghjklzxcvbnmqazwsxaswazaaa&quot;; var arr=str.split(&quot;&quot;); // 转换为数组 1、 function moreLetter(arr) { if (!arr) return false; if (arr.length === 1) re...
Java-实现找出数组中一个数字出现次数最多的数字
import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class Mytest { /** * @param args */ public static void main(Strin
python 找出序列中出现次数最多的元素方法
words = [ 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes', 'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'around', 'the', 'eyes', "don't", 'look', 'around', 'the', 'eyes',
找出数组中出现次数最多的那个数——主元素问题
 方法一:以空间换时间,可以定义一个计数数组int count[100],用来对数组中数字出现的次数进行计数(只能针对数组中数字的范围1~1000),count数组中最大的元素对应的下标,即为出现次数最多的那个数。代码如下: #include &amp;lt;iostream&amp;gt; using namespace std; int main() { int n; cin &amp;gt;&amp;gt; n...
js 统计数组找中出现最多的元素和次数
&amp;amp;lt;script&amp;amp;gt; // 定义一个arr的数组 var arr = [1, 2, 3, 4, 2, 2,3,4,2,4]; // 声明一个空对象 var obj = {}; //遍历数组 for (var i = 0; i &amp;amp;lt; arr.length; i++) { //声明一个key接收...
查询list元素中,元素中某个属性的值出现最多的元素,及map排序
Map&amp;lt;String, Integer&amp;gt; tagMap = new LinkedHashMap&amp;lt;&amp;gt;();letters.stream().forEach(item -&amp;gt; {                if (StringUtils.isNotEmpty(item.getTagId())) {                    Integer j;       ...
Leetcode:169. Majority Element(找到数组中出现次数最多的元素)
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element always
python找出序列中出现次数最多的元素之Counter对象
Python collections Counter
寻找容器vector中出现最多的元素以及出现的次数
template static T max_num(vector A, int& num);//A中出现最多的元素,以及出现的次数 template inline T sortvect::max_num(vector A, int& num) { //遍历,获得每个元素出现的次数 vector A_per; for(int r=0; r<A.size(); r++){ T tm
函数 C++ 找数组a中出现次数最多的值
int maxa(int a[],int n) //返回数组a中出现次数最多的整数,相同出现次数的值,仅返回先出现的那个。n是数组a中元素个数。 { int i,k,maxk=0,max=a[0]; for(i=0;i { k=0; for(int j=0;j { if(a[j]==a[i]) { k++;    if(k>maxk){maxk=k;max=a[j];}
python代码查找列表中重复的元素出现次数
这个问题需要用到字典 # 输入数字几,就找到出现几次的元素 ids=[1,2,3,3,4,2,3,4,5,6,1,5] di={} for i in ids: if i not in di.keys(): di[i]=1 else: di[i]+=1 values=list(di.values()) keys=list(di.keys()) pri...
python 返回一个列表中出现次数最多的元素
def max_list(lt): temp = 0 for i in lt: if lt.count(i) &amp;gt; temp: max_str = i temp = lt.count(i) return max_str n = [1,2,2,2,3,3,3,3,4] print(max_list(n))...
js统计数组中出现次数最多的元素
想来想去没想出更好的解决方法。 思路就是在ana函数里先遍历一遍,维护一个数组newArr 用于将所有数值相同的放在数组中的同一个块内。另外一个数组unique 用于维护数值唯一,判断当前的item是否已存在于newArr中。为了方便比较对象的数组相同,将所有item均转为string类型来比较。 得到的 newArr = [[3],[2],[{a:1},{a:1}],[1]] unique...
从字符串数组中找出重复次数最多的字符串
C++实现: #include &amp;lt;iostream&amp;gt; #include &amp;lt;map&amp;gt; using namespace std; /** * 字符串 */ bool findMostFrequentString(string* a, int size, string &amp;amp;val) { if (size &amp;lt;= 0...
# 返回一个列表中出现次数最多的元素
第一种: def showmax(lt): index1 = 0 # 记录出现次数最多的元素下标 max = 0 # 记录最大的元素出现次数 for i in range(len(lt)): flag = 0 # 记录每一个元素出现的次数 for j in range(i + 1, len(lt)): # 遍历i之后的元素下标 ...
找出数组中出现次数最多的前k个元素
给定一个非空的整数数组,返回其中出现频率前 k 高的元素。 例如,给定数组 [1,1,1,2,2,3] , 和 k = 2,返回 [1,2]。 注意: 你可以假设给定的 k 总是合理的,1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。 解题思路: 采用map存储每个元素出现的次数。 然后...
数组:找出数组中重复元素最多的数
题目描述: 如何找出数组中重复元素最多的数 思路: 使用Map映射表记录每一个元素出现的次数,然后判断次数大小,进而找出重复次数最多的元素。key表示数组的元素,value表示这个元素在数组中出现的次数。最后对map进行遍历。 代码: /** * 使用map(不允许重复的),key是a中元素的值,value是元素出现的次数 * @param a * @return *...
python 返回一个列表中出现次数最多的元素
# 返回一个列表中出现次数最多的元素 def showmax(lt):     index1 = 0                       #记录出现次数最多的元素下标     max = 0                          #记录最大的元素出现次数     for i in range(len(lt)):         flag = 0         ...
判断数组中出现次数最多的元素
已经时隔好久没来更新博客了,因为最近面试的经历才让我明白其实多去学习多去充实自己究竟有多么的重要,回过头想想还是为自己的博客留下一点所谓学习或者笔记之类的痕迹吧。现在就先来说说如何在数组中判断出现次数最多的元素。 var arr = ['a', 'b', 'c', 'd', 'd', 's', 'b', 'b', 'c', 'x', 'c']; var obj = {}; arr.forEach
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 现在最应该学习的编程语言 应该怎么学习python