K Closest Points to Origin LeetCode solution in C++

1
class Solution {
2
public:
3
vector<vector<int>> kClosest(vector<vector<int>> &points, int k) {
4
// max heap
5
priority_queue<pair<int, pair<int, int>>>
6
pq; // first integer is distance(no need for sq root as comparison is
7
// same and next part of pair is coordinate
8
int n = points.size();
9
for (int i = 0; i < n; i++) {
10
int dist = (points[i][0] * points[i][0] + points[i][1] * points[i][1]);
11
pq.push({dist, {points[i][0], points[i][1]}});
12
if (pq.size() > k) pq.pop();
13
}
14
vector<vector<int>> ans;
15
while (!pq.empty()) {
16
vector<int> temp = {(pq.top().second.first), pq.top().second.second};
17
ans.push_back(temp);
18
pq.pop();
19
}
20
return ans;
21
}
22
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0