1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Solution { public: vector <string> alertNames(vector <string> &keyName, vector <string> &keyTime) { unordered_map <string, vector<int>> map; int n = keyName.size(); for (int i = 0; i < n; ++i) { int hour = (keyTime[i][0] - '0') * 10 + (keyTime[i][1] - '0'); int minute = (keyTime[i][3] - '0') * 10 + (keyTime[i][4] - '0'); map[keyName[i]].emplace_back(hour * 60 + minute); } vector <string> res; for (auto &[name, times]: map) { sort(times.begin(), times.end()); int size = times.size(); for (int i = 2; i < size; ++i) { if (times[i] - times[i - 2] <= 60) { res.emplace_back(name); break; } } } sort(res.begin(), res.end()); return res; } };
|