1186:出现次数超过一半的数

简介: 1186:出现次数超过一半的数

1186:出现次数超过一半的数

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

给出一个含有n(0 < n ≤ 1000)个整数的数组,请找出其中出现次数超过一半的数。数组中的数大于-50且小于50。

【输入】

第一行包含一个整数n,表示数组大小;

第二行包含n个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。

【输出】

如果存在这样的数,输出这个数;否则输出no。

【输入样例】

3

1 2 2

【输出样例】

2

【来源】

No

1. #include <iostream>
2. #include <map>
3. using namespace std;
4. int main(int argc, char *argv[])
5. {
6.  map<int,int> m;
7.  int n,t,k=0,p=0;
8.  cin>>n;
9.  for(int i=0;i<n;i++){
10.     cin>>t;
11.     m[t]++;
12.     if(m[t]>n/2 && p<m[t]){
13.       k=t;
14.       p=m[t];
15.     }
16. 
17.   }
18.   if(p>0) cout<<k;
19.   else cout<<"no";
20.   return 0;
21. }
1. #include <iostream>
2. #include <algorithm>
3. using namespace std;
4. int main(int argc, char *argv[])
5. {
6.  int d[1001]={0};
7.  int n,m=1,k;
8.  cin>>n;
9.  for(int i=0;i<n;i++) cin>>d[i];
10.   sort(d,d+n);
11.   for(int i=1;i<=n;i++){
12.     if(d[i-1]==d[i]) m++;
13.     else {
14.       if(m>n/2) {
15.         k=d[i-1];
16.         break;
17.       }
18.       m=1;
19.     }
20.   }
21.   if(m>n/2){
22.     cout<<k;
23.     return 0;
24.   }
25.   cout<<"no";
26.   return 0;
27. }

 

相关文章
|
机器学习/深度学习 C++
最大子矩阵(C/C++)
最大子矩阵(C/C++)
|
存储 算法 NoSQL
【C/C++ 数据结构】稀疏矩阵解析:从原理到 C++ 实现 指南
【C/C++ 数据结构】稀疏矩阵解析:从原理到 C++ 实现 指南
672 0
1358:中缀表达式值(expr)
1358:中缀表达式值(expr)
282 0
|
算法 C语言
【C语言】求最小新整数(贪心算法)
【C语言】求最小新整数(贪心算法)
183 1
|
索引
转置矩阵-暴力解法&一行代码
转置矩阵-暴力解法&一行代码
99 0
|
机器学习/深度学习 移动开发 算法
1316:【例4.6】数的计数(Noip2001)
1316:【例4.6】数的计数(Noip2001)
502 0
|
机器学习/深度学习 C语言 C++
信奥赛一本通1150:求正整数2和n之间的完全数
题目描述】 求正整数2和n之间的完全数(一行一个数)。 完全数:因子之和等于它本身的自然数,如 6=1+2+3 【输入】 输入n(n≤5000)。 【输出】 一行一个数,按由小到大的顺序。 【输入样例】 7 【输出样例】
818 0
|
算法 机器人 C++
剑指offer(C++)-JZ13:机器人的运动范围(算法-回溯)
剑指offer(C++)-JZ13:机器人的运动范围(算法-回溯)
|
存储
二叉树的基本操作(C 语言版)
二叉树的基本操作(C 语言版)
121 1