当前位置:网站首页>CCF刷题之旅--第一题
CCF刷题之旅--第一题
2022-08-02 03:33:00 【风华同学】
寻找出现次数最多的数
题目描述
给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入
输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输出
输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
#include <iostream>
using namespace std;
/* * * 利用哈希表来表示每个数出现的次数 * step1:创建一个哈希数组 * step2:每个数字带表了数组的下标 * step3:,每次出现一个数字则数组的值加一 * step4:在通过遍历数组找到数组的值最大的那个并且将其赋值给要求的出现次数最多的数字(由于数组的下标是从0开始的,所以不需要另外比较相同次数中较小的那个数字) */
int main()
{
int s[1000] = {
0 };
int n;
int num,ans;
int flag = 0;//标志着每个数字出现的次数
int max = 0;//找到最大的数字
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> num;
s[num]++;
if (num > max)
{
max = num;
}
}
for (int i = 0; i <= max; i++)
{
if (s[i] > flag)//这里为>而不是>=(用来比较出现次数的多少)
{
flag = s[i];
ans = i;//ans代表着找到的那个数字
}
}
cout << ans;
}
边栏推荐
猜你喜欢
随机推荐
IDEA2021.2安装与配置(持续更新)
【TCS3200 color sensor and Arduino realize color recognition】
I2C无法访问ATEC508A加密芯片问题
NE5532运放加法器
Industry where edge gateway strong?
vector的使用和模拟实现:
【数据库】事务的四大特性<详解>
远程调试PLC,到底如何操作?
【Arduino connects DHT11 humidity and temperature sensor】
Beckhoff ET2000 listener use
博达工业云与阿里云对比
【Popular Science Post】UART Interface Communication Protocol
PCB设计思路
Personal image bed construction based on Alibaba Cloud OSS+PicGo
NSIS来自己设定快捷方式的图标
Chrome 里的小恐龙游戏是怎么做出来的?
install 命令
【Popular Science Post】Detailed explanation of MDIO interface
LL(1)文法 :解决 if-else/if-else 产生式二义性问题
判断子序列 —— LeetCode-392