题目分析:
本题要求统计一个整型序列中出现次数最多的整数及其出现次数,其中整数的个数和值均未知。由于输入的整数个数可变,我们可以考虑使用数组来存储这些整数,并通过循环遍历数组来进行统计。
具体做法如下:
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$为整数的个数。由于本题数据规模较小,因此该实现方式可以通过本题。
球一个最佳答案谢谢啦!这对我非常重要! |