C++笔记-PTA 求整数序列中出现次数最多的数

    科技2025-06-22  4

    文章目录

    一、题目二、算法思路三、代码

    一、题目

    二、算法思路

    题目要求的是多个数字中出现次数最多的一个,这道题如果采用字典为存储结构的话会更加容易解决,我之前没接触c++的字典结构,就用其他方法来解决一下。

    存储结构采用的是数组,有两个数组分别为number和time,number用于存储数字,time用于存储数组中各个元素出现的次数。 计算各个数字出现次数使用的是双重循环,在计算第i个元素时,就再次在原数组中重判断一遍将该元素出现的次数记录下来

    之后就是从中找出次数最大的一个数,以案例中的这十个数3 2 -1 5 3 4 3 0 3 2为例,对应的次数如下图,因为相同数字对应的次数是一样的,所以查找时直接遍历time数组找最大的数和次数即可。

    三、代码

    //作者:小狐狸 #include<iostream> using namespace std; int main(){ int N,i,j; int number[1002]; cin>>N; for(i=1;i<=N;i++) cin>>number[i]; int time[1000]={0}; for(i=1;i<=N;i++){//次数计算 //cout<<time[i]<<endl; int now = 0;//当前数字出现的次数 for(j=1;j<=N;j++){ if(number[i]==number[j]) now++; } time[i]=now; } int most = number[1]; int most_number = time[1]; for(i=1;i<=N;i++){//找到出现次数最大的数 //cout<<time[i]<<endl; if(most_number<time[i]){ most = number[i]; most_number = time[i]; } } cout<<most<<" "<<most_number<<endl; return 0; }
    Processed: 0.009, SQL: 8