鱼C论坛

 找回密码
 立即注册
查看: 1188|回复: 2

[已解决]求助一下

[复制链接]
发表于 2023-11-2 23:41:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本题要求统计一个整型序列中出现次数最多的整数及其出现次数。

输入格式:
输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。

输出格式:
在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。

输入样例:
10 3 2 -1 5 3 4 3 0 3 2
输出样例:
3 4

这题怎么做
最佳答案
2023-11-2 23:42:20
这个问题可以通过使用字典来解决。首先,我们将序列中的每个整数作为字典的键,并将其出现次数作为对应键的值。然后,我们可以遍历字典,找到出现次数最多的整数及其出现次数。

以下是解决这个问题的代码示例:
# 输入序列
sequence = input().split()[1:]

# 创建一个空字典来存储整数及其出现次数
count_dict = {}

# 遍历序列,统计整数出现次数
for num in sequence:
    if num in count_dict:
        count_dict[num] += 1
    else:
        count_dict[num] = 1

# 找到出现次数最多的整数及其出现次数
max_num = max(count_dict, key=count_dict.get)
max_count = count_dict[max_num]

# 输出结果
print(max_num, max_count)

这段代码首先通过 input().split()[1:] 获取输入序列,然后创建一个空字典 count_dict 来存储整数及其出现次数。接下来,我们遍历序列,如果整数已经存在于字典中,则将其对应的值加1;否则,将其作为新的键,并将值初始化为1。最后,我们使用 max() 函数和 key 参数来找到出现次数最多的整数,并将其对应的值作为出现次数。最后,我们打印出现次数最多的整数及其出现次数。

希望对你有帮助!如果有任何问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-2 23:42:20 | 显示全部楼层    本楼为最佳答案   
这个问题可以通过使用字典来解决。首先,我们将序列中的每个整数作为字典的键,并将其出现次数作为对应键的值。然后,我们可以遍历字典,找到出现次数最多的整数及其出现次数。

以下是解决这个问题的代码示例:
# 输入序列
sequence = input().split()[1:]

# 创建一个空字典来存储整数及其出现次数
count_dict = {}

# 遍历序列,统计整数出现次数
for num in sequence:
    if num in count_dict:
        count_dict[num] += 1
    else:
        count_dict[num] = 1

# 找到出现次数最多的整数及其出现次数
max_num = max(count_dict, key=count_dict.get)
max_count = count_dict[max_num]

# 输出结果
print(max_num, max_count)

这段代码首先通过 input().split()[1:] 获取输入序列,然后创建一个空字典 count_dict 来存储整数及其出现次数。接下来,我们遍历序列,如果整数已经存在于字典中,则将其对应的值加1;否则,将其作为新的键,并将值初始化为1。最后,我们使用 max() 函数和 key 参数来找到出现次数最多的整数,并将其对应的值作为出现次数。最后,我们打印出现次数最多的整数及其出现次数。

希望对你有帮助!如果有任何问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-2 23:42:28 | 显示全部楼层
问题描述:

给定一个整型序列,要求统计出现次数最多的整数及其出现次数。

解决方法:

要解决这个问题,可以使用哈希表(unordered_map)来记录每个整数出现的次数。具体步骤如下:

1. 创建一个空的哈希表 freq,用于记录每个整数出现的次数。
2. 读取输入的整数个数 N
3. 循环读取 N 个整数,对于每个整数 num
   - 若 num 已经存在于哈希表中,则将对应的出现次数加一。
   - 若 num 不在哈希表中,则将其添加到哈希表中,并将出现次数初始化为 1。
4. 遍历哈希表,找到出现次数最多的整数及其出现次数:
   - 初始化变量 maxNummaxFreq,分别表示出现次数最多的整数和出现次数。
   - 遍历哈希表中的每个键值对 (num, freq)
     - 若 freq 大于 maxFreq,则将 maxNum 更新为当前整数 num,将 maxFreq 更新为当前出现次数 freq
5. 输出结果 maxNummaxFreq

下面是相应的代码实现:
#include <iostream>#include <unordered_map>using namespace std;int main() {    int N;    cin >> N;        unordered_map<int, int> freq;        for (int i = 0; i < N; i++) {        int num;        cin >> num;                if (freq.count(num) > 0) {            freq[num]++;        } else {            freq[num] = 1;        }    }        int maxNum, maxFreq = 0;        for (auto it = freq.begin(); it != freq.end(); it++) {        if (it->second > maxFreq) {            maxNum = it->first;            maxFreq = it->second;        }    }        cout << maxNum << " " << maxFreq << endl;        return 0;}
希望这个解答对你有帮助!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 15:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表