題目錯誤
- 範例測資的數字之間多給了一個空格 : 提交時 1 個空格就好
- 有多個眾數時 : 輸出需要 由小到大 排序
- N 的範圍錯誤 : 實際的範圍是 1 ≤ N ≤ 30000
解法一、map
✅ 完整代碼
評分結果(參考) : AC (5ms, 688KB)
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t, temp, mx = 0;
cin >> t;
unordered_map<int, int> um;
vector<int> ans;
for(int i=0; i<t; i++){
cin >> temp;
um[temp]++;
if(um[temp] > mx){
ans.clear();
ans.push_back(temp);
mx = um[temp];
}
else if(um[temp] == mx){
ans.push_back(temp);
}
}
sort(ans.begin(), ans.end());
for(int i : ans) cout << i << " " << um[i] << "\n";
return 0;
}