leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0973.cpp (600B)


0 class Solution {
1 typedef pair<double, int> pdi;
3 public:
4 vector<vector<int>> kClosest(vector<vector<int>> &points, int k) {
5 auto cmp = [](const pdi &a, const pdi &b) { return a.first < b.first; };
6 priority_queue<pdi, vector<pdi>, decltype(cmp)> pq(cmp);
7 for (int i = 0; i < points.size(); i++) {
8 pq.push({sqrt(pow(points[i][0], 2) + pow(points[i][1], 2)), i});
9 if (pq.size() > k) pq.pop();
10 }
12 vector<vector<int>> res(k);
13 while (k--)
14 res[k] = points[pq.top().second], pq.pop();
15 return res;
16 }
17 };