众数问题
来源:互联网 发布:无忧推广软件骗局 编辑:程序博客网 时间:2024/06/09 15:25
1204: 众数问题
描述
题目描述:
问题描述:
给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。
例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。
编程任务:
对于给定的由n 个自然数组成的多重集S,编程计算S 的众数及其重数。
输入:
第1行多重集S中元素个数n(n<=50000);接下来的n 行中,每行有一个自然数。
输出:
输出文件有2 行,第1 行给出众数,第2 行是重数。(如果有多个众数,只输出最小的)
样例输入
6
1
2
2
2
3
5
样例输出
2
3
思路:开始还是无脑想的是双循环然后一个个找,但是太麻烦了,总感觉自己不动脑子,以后做题也是,一定要优化多最好的方案。
其实这里直接用map就可以了,顺便复习一下map的知识,
输入一个数存入map,对应的key加1,然后最后遍历一遍map就可以了,找到最大的key值,
题种还说如果个数相同按数字小的输出,这里map是自动排序的,虽然不稳定,但是这里没有关系,随着插入的int,它会自动排序,如果key值相同的
时候也是按小的取的,所以这里就不用做特殊处理了。
贴代码
#include<bits/stdc++.h>using namespace std;int main(){int n;cin>>n;map<int,int> m;map<int,int>::iterator iter;for(int i = 1;i <= n;i ++){int tmp;cin>>tmp;m[tmp]++; }int maxn,flag;flag = 0;for(iter = m.begin();iter != m.end();iter ++){if(iter->second > flag ){maxn = iter->first;flag = iter->second;}}cout<<maxn<<endl<<flag;return 0;}
阅读全文
0 0
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 专为移动应用提供后台服务的Parse
- MapReduce程序服务器部署
- 自定义valida验证注解
- 一步步实现 Prism + MEF(一)--- 搭建框架
- 博凌科技携手中企动力用互联网思维卖乐器
- 众数问题
- Android Volley完全解析之加载网络图片
- eclipse优化和快捷键
- Python中使用Beautiful Soup库的超详细教程
- IAP实现之一掉单优化处理 — cocos2dx
- 设计模式<二>单例模式
- 如何从MySQL全备文件中恢复单个库或者单个表
- java--多线程--CAS
- 一个软件开发者的历史 1996年9月