11.09每日一题
973. 最接近原点的 K 个点
这道题之前做过类似的,利用最小堆直接求解就可以了,下面附上代码。
class Solution {
public int[][] kClosest(int[][] points, int K) {
if(points.length == 0 || points == null){
return new int[0][0];
}
Queue<int[]> pq = new PriorityQueue<>(K, (v1, v2) -> v1[0] * v1[0] + v1[1] * v1[1] - v2[0] * v2[0] - v2[1] * v2[1]);
for(int[] point : points){
pq.offer(point);
}
int [][] res = new int[K][2];
for(int i = 0; i < K; i++){
res[i] = pq.poll();
}
return res;
}
}