出现次数

2024-09-04 09:08
文章标签 次数

本文主要是介绍出现次数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

出现次数

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

      对于给定一个整数序列,你的任务是确定这个序列中出现次数最多的整数和它出现的次数。

输入

输入包含多组测试数据,每组数据的第一行为一个整数 N(0 < N <= 1000),接下来一行为 个以空格分隔的整数 Ai|Ai| < 2^31

输出

对于每组测试数据,输出只有一行为两个空格分隔的整数AB,分别代表出现次数最多的那个数和出现次数,如果出现次数最多的有多个,输出数值最小的那个。

示例输入

4
1 2 3 3
5
1 2 3 4 5

示例输出

3 2
1 1


解题报告

挺久没用结构,试试手。。。

忘了小小细节,“如果出现次数最多的有多个,输出数值最小的那个。”。两次WA。。。

#include<stdio.h>
#include<string.h>
struct num
{int m;int n;
}nums[2000];
int main()
{int i,j,c,n,t,tt;while(scanf("%d",&n)!=EOF){memset(nums,0,sizeof(nums));for(i=0;i<n&&scanf("%d",&nums[i].n);i++);for(i=0;i<n;i++){for(j=0;j<n;j++){if(nums[i].n==nums[j].n)nums[i].m++;}}for(i=0;i<n-1;i++)for(j=i+1;j<n;j++){if(nums[i].n>nums[j].n){tt=nums[i].n;nums[i].n=nums[j].n;nums[j].n=tt;t=nums[i].m;nums[i].m=nums[j].m;nums[j].m=t;}if(nums[i].m<nums[j].m){t=nums[i].m;nums[i].m=nums[j].m;nums[j].m=t;tt=nums[i].n;nums[i].n=nums[j].n;nums[j].n=tt;}}printf("%d %d\n",nums[0].n,nums[0].m);}return 0;
}



  • 提交 

这篇关于出现次数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1135590

相关文章

hdu 3065 AC自动机 匹配串编号以及出现次数

题意: 仍旧是天朝语题。 Input 第一行,一个整数N(1<=N<=1000),表示病毒特征码的个数。 接下来N行,每行表示一个病毒特征码,特征码字符串长度在1—50之间,并且只包含“英文大写字符”。任意两个病毒特征码,不会完全相同。 在这之后一行,表示“万恶之源”网站源码,源码字符串长度在2000000之内。字符串中字符都是ASCII码可见字符(不包括回车)。

C语言练习题之 数组中出现次数超过一半的数

题目描述 给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 数据范围:n≤50000,数组中元素的值0≤val≤10000 要求:空间复杂度:O(1),时间复杂度O(n) 输入描述: 保证数组输入非空,且保证有

【每日一题】LeetCode 2379.得到K个黑块的最少涂色次数(字符串、滑动窗口)

【每日一题】LeetCode 2379.得到K个黑块的最少涂色次数(字符串、滑动窗口) 题目描述 给定一个字符串 blocks,其中每个字符代表一个颜色块,可以是 ‘W’(白色)或 ‘B’(黑色)。你需要找到一个至少包含 k 个连续黑色块的子串。每次操作可以将一个白色块变成黑色块。你的任务是找到至少出现一次连续 k 个黑色块的最少操作次数。 和该题目类似:【每日一题】LeetCode 202

43. 1 ~ n 整数中 1 出现的次数【难】

comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9843.%201%EF%BD%9En%E6%95%B4%E6%95%B0%E4%B8%AD1%E5%87%BA%E7%8E%B0%E7%9A%84%E6%AC%A1%

0to1使用Redis实现“登录验证”次数限制

1 引言 系统为了避免密码遭到暴力破解,通常情况下需要在登录时,限制用户验证账号密码的次数,当达到一定的验证次数后,在一段时间内锁定该账号,不再验证。本章将用几行代码实现该功能,完整代码链接在文章最后。 2 原理介绍 可以看到在登录接口中,4行代码即可实现该功能,这里使用Redis可以很方便的记录“登录失败次数”,以及设置其失效时间(即锁定时间),主要步骤是: 账号登录时,当前账号“登录失

【算法】单词出现次数和位置统计

【算法】单词出现次数和位置统计 题目描述 编写一个程序,用于统计一个给定单词在一段文本中出现的次数以及第一次出现的位置。如果单词在文本中出现,则输出出现次数和第一次出现的位置(位置从0开始计算)。如果单词没有出现,则输出-1。 思路分析 使用Scanner类从控制台读取两个字符串:要搜索的文本str和要统计的单词substring。定义一个方法countStr,该方法接收两个字符串参数

算法练习题11:单词出现次数

c++解法  #include <bits/stdc++.h>using namespace std;int main() {string s1;string s2;getline(cin,s1);getline(cin,s2);for(int i = 0;i<s1.length();i++){s1[i] = tolower(s1[i]);}for(int i = 0;i<s2.leng

incr命令和expire命令的误区--举例每分钟访问次数限制

要实现的功能:限制用户的每分钟的访问次数 一个有严重bug的代码:每次访问来了,就执行代码块二,当第一次访问,就走else语句,设置当前用户的次数为1,且设置该key的有效期是一分钟。 在一分钟之内,第二次来访问了,就走if语句了,因为redis存在这个key了,就实现自增一,然后取出来判断是否超过了设定的阈值。逻辑上看似看似没什么问题。 代码块一: Long maxAllowedTimes

力扣刷题--2220.转换数字的最少位翻转次数【简单】

题目描述🍗 一次 位翻转 定义为将数字 x 二进制中的一个位进行 翻转 操作,即将 0 变成 1 ,或者将 1 变成 0 。 比方说,x = 7 ,二进制表示为 111 ,我们可以选择任意一个位(包含没有显示的前导 0 )并进行翻转。比方说我们可以翻转最右边一位得到 110 ,或者翻转右边起第二位得到 101 ,或者翻转右边起第五位(这一位是前导 0 )得到 10111 等等。 给你两个整数