题目
代码
代码一
利用哈希表
#include <iostream>
#include <map>
using namespace std;
const int maxn = 1e5 + 100;
int hashTable[maxn] = { 0 };
int main() {
int n;
cin >> n;
int num, max_num = -1;
for (int i = 0; i < n; i++) {
cin >> num;
hashTable[num]++;//对应次数加一
if (num > max_num) max_num = num;//记录出现的最大值
}
for (int i = 0; i <= max_num; i++) {//按自然数从小到大输出
if (hashTable[i] != 0) {
cout << i << " " << hashTable[i] << endl;
}
}
return 0;
}
代码二
利用map
#include <iostream>
#include <map>
using namespace std;
map<int, int> m;
int main() {
int n;
cin >> n;
int num;
for (int i = 0; i < n; i++) {
cin >> num;
m[num]++;//对应次数加一
}
map<int, int>::iterator it;
//map自动排序了,按顺序输出
for (it = m.begin(); it != m.end(); it++) {
cout << it->first << " " << it->second << endl;
}
return 0;
}