ogv

Untitled

ogv
Nov 4th, 2019
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.38 KB | None | 0 0
  1. // Runtime: 33 ms, faster than 47.34% of Java online submissions for K Closest Points to Origin.
  2. class Solution {
  3.     public int[][] kClosest(int[][] points, int K) {
  4.         PriorityQueue<int[]> pq = new PriorityQueue<>(
  5.             new Comparator<int[]>() {
  6.                 public int compare(int[] a, int[] b) {
  7.                     return b[0]*b[0] + b[1]*b[1] - (a[0]*a[0] + a[1]*a[1]);
  8.                 }
  9.             });
  10.        
  11.         for (int[] point: points) {
  12.             pq.add(point);
  13.            
  14.             if (pq.size() > K) pq.poll();
  15.         }
  16.        
  17.         int[][] result = new int[K][];
  18.        
  19.         for (int i = K-1; i >=0; i--) {
  20.             int[] point = pq.poll();
  21.             result[i] = point;
  22.         }
  23.        
  24.         return result;
  25.     }
  26. }
  27.  
  28. // Runtime: 25 ms, faster than 61.65% of Java online submissions for K Closest Points to Origin.
  29. class Solution {
  30.     public int[][] kClosest(int[][] points, int K) {
  31.         Arrays.sort(points,
  32.             new Comparator<int[]>() {
  33.                 public int compare(int[] a, int[] b) {
  34.                     return a[0]*a[0] + a[1]*a[1] - (b[0]*b[0] + b[1]*b[1]);
  35.                 }
  36.             });
  37.                
  38.         int[][] result = new int[K][];
  39.        
  40.         for (int i = 0; i < K; i++) {            
  41.             result[i] = points[i];
  42.         }
  43.        
  44.         return result;
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment