Medium
Most Popular Video Creator — C++
Full explanation · Time O(n) · Space O(n)
// Time: O(n)
// Space: O(n)
// hash table
class Solution {
public:
vector<vector<string>> mostPopularCreator(vector<string>& creators, vector<string>& ids, vector<int>& views) {
unordered_map<string, int> cnt;
unordered_map<string, pair<int, string>> lookup;
for (int i = 0; i < size(creators); ++i) {
cnt[creators[i]] += views[i];
if (!lookup.count(creators[i])) {
lookup[creators[i]] = {-views[i], ids[i]};
continue;
}
lookup[creators[i]] = min(lookup[creators[i]], pair(-views[i], ids[i]));
}
int mx = 0;
for (const auto& [_, v] : cnt) {
mx = max(mx, v);
}
vector<vector<string>> result;
for (const auto& [k, v] : cnt) {
if (v != mx) {
continue;
}
result.push_back({k, lookup[k].second});
}
return result;
}
};