题目分析:
本题要求统计一个整型序列中出现次数最多的整数及其出现次数,其中整数的个数和值均未知。由于输入的整数个数可变,我们可以考虑使用数组来存储这些整数,并通过循环遍历数组来进行统计。
具体做法如下:
1. 定义一个长度为1000的整数数组
nums,用于存储输入的整数序列。
2. 从标准输入中读入输入的整数个数
N,并使用循环将这些整数依次存入数组
nums中。
3. 定义两个变量
max_num和
max_cnt,分别表示出现次数最多的整数和其出现次数。初始时,将
max_cnt赋值为1,表示所有的整数至少出现了一次。
4. 使用循环遍历数组
nums,对于每个整数,再次遍历整个数组,统计其出现次数。如果出现次数大于
max_cnt,则更新
max_num和
max_cnt的值。
5. 输出出现次数最多的整数和其出现次数。
C++代码实现:
- ++
- #include <iostream>
- using namespace std;
- int main() {
- const int MAXN = 1000;
- int nums[MAXN];
- // 读入整数序列
- int N;
- cin >> N;
- for (int i = 0; i < N; i++) {
- cin >> nums[i];
- }
- // 统计出现次数最多的整数及其出现次数
- int max_num = nums[0], max_cnt = 1;
- for (int i = 0; i < N; i++) {
- int cnt = 1;
- for (int j = i + 1; j < N; j++) {
- if (nums[j] == nums[i]) {
- cnt++;
- }
- }
- if (cnt > max_cnt) {
- max_num = nums[i];
- max_cnt = cnt;
- }
- }
- // 输出结果
- cout << max_num << " " << max_cnt << endl;
- return 0;
- }
复制代码
算法分析:
本题的时间复杂度为$O(N^2)$,其中$N$为整数的个数。由于本题数据规模较小,因此该实现方式可以通过本题。
加粗部分为题目分析和代码实现。
球一个最佳答案谢谢啦!这对我非常重要!

