leetcodeSolution 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; 2 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 } 11 12 vector<vector<int>> res(k); 13 while (k--) 14 res[k] = points[pq.top().second], pq.pop(); 15 return res; 16 } 17 };