阅读此题,可知题目的要求即为排序+查找,确定算法分为两部分
1. 排序
2. 查找
排序部分可以使用sort函数来快速实现
而查找部分可以靠手写两个for循环来实现
//C++ #include<bits/stdc++.h> //头文件 using namespace std; int main() { int in[200050],out[200050],data,n; int i,j; cin>>n; for(i=1;i<=n;i++) { cin>>in[i]; } //读入结束 sort(in+1,in+n+1);//头文件为<algorithm>,函数排序,免去手写痛苦 //用法 sort(数组名+数组需要排序的第一个坐标,数组名+数组需要排序的最后一个坐标+1); //排序结束 for(i=1;i<=n;i++) { data=0;//计数器归零 for(j=i+1;j<=n;j++) { if(in[i]==in[j]) { data++;//相同时,计数器相加 } } cout<<in[i]<<" "<<data+1<<endl;/*打印相同数和出现次数,data记得加一,其本身就有一次*/ i=data+i;//重点【防重复打印】 } return 0; }