leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0347.cpp (783B)
0 struct elem { 1 static void reset() { id_cnt = 0; } 2 static int id_cnt; 3 int id = id_cnt++, count = 0; 4 void operator++(int) { count++; } 5 friend bool operator<(const elem &e1, const elem &e2) { return e1.count > e2.count; } 6 friend ostream &operator<<(ostream &os, const elem &e) { return os << e.id << ": " << e.count; } 7 }; 8 int elem::id_cnt = 0; 9 10 class Solution { 11 const int size = 20002; 12 const int mod = 10000; 13 14 public: 15 vector<int> topKFrequent(vector<int> &nums, int k) { 16 elem::reset(); 17 vector<elem> um(size); 18 for (int n : nums) 19 um[n + mod]++; 20 sort(um.begin(), um.end()); 21 vector<int> res; 22 for (int i = 0; i < k; i++) 23 res.push_back(um[i].id - mod); 24 return res; 25 } 26 };