我的中国大学MOOC-陈越、何钦铭-数据结构-2018秋代码仓:https://github.com/617076674/MOOC-DataStructure-2018-Autumn
题目描述:
知识点:map集合的应用
思路:用map集合存储每个人的号码及其通话次数
时间复杂度和空间复杂度均是O(N)。
C++代码:
#include<iostream>
#include<map>
#include<vector>
using namespace std;
int N;
long long num1, num2;
map<long long, int> countMap;
vector<long long> maxCallTimesPeople;
int main(){
scanf("%d", &N);
for(int i = 0; i < N; i++){
scanf("%lld %lld", &num1, &num2);
countMap[num1]++;
countMap[num2]++;
}
int maxCallTimes = 0;
for(map<long long, int>::iterator it = countMap.begin(); it != countMap.end(); it++){
if(it->second > maxCallTimes){
maxCallTimes = it->second;
}
}
for(map<long long, int>::iterator it = countMap.begin(); it != countMap.end(); it++){
if(it->second == maxCallTimes){
maxCallTimesPeople.push_back(it->first);
}
}
if(maxCallTimesPeople.size() == 1){
printf("%lld %d\n", maxCallTimesPeople[0], maxCallTimes);
}else{
printf("%lld %d %d\n", maxCallTimesPeople[0], maxCallTimes, maxCallTimesPeople.size());
}
return 0;
}
C++解题报告: