leetcode

Solution 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;
10 class Solution {
11 const int size = 20002;
12 const int mod = 10000;
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 };