Idea
使用优先队列(大顶堆)构建数据结构
AC Code
class Solution {
public:
vector<vector<int>> kClosest(vector<vector<int>>& points, int k) {
int n = points.size();
priority_queue<pair<int,int>> q;
for(int i = 0;i < n;i++){
int dis = pow(points[i][0],2)+pow(points[i][1],2);
q.push({dis,i});
}
while(q.size() > k) q.pop();
vector<vector<int>> ans;
while(q.size()){
ans.emplace_back(points[q.top().second]);
q.pop();
}
return ans;
}
};