Given an array of points where points[i] = [xi, yi] represents a point on the X-Y plane and an integer k, return the k closest points to the origin (0, 0).

The distance between two points on the X-Y plane is the Euclidean distance (i.e., √(x1 – x2)^2 + (y1 – y2)^2).

You may return the answer in any order. The answer is guaranteed to be unique (except for the order that it is in).

Example 1: Input: points = [[1,3],[-2,2]], k = 1 Output: [[-2,2]] Explanation: The distance between (1, 3) and the origin is sqrt(10). The distance between (-2, 2) and the origin is sqrt(8). Since sqrt(8) < sqrt(10), (-2, 2) is closer to the origin. We only want the closest k = 1 points from the origin, so the answer is just [[-2,2]]. Example 2: Input: points = [[3,3],[5,-1],[-2,4]], k = 2 Output: [[3,3],[-2,4]] Explanation: The answer [[-2,4],[3,3]] would also be accepted. |

- Create point object that contains x, y co-ordinates and distance from origin.
- Keep adding points to max heap. Custom comparator that uses distance (inside the point object) as key.
- Make sure size of heap does not go higher than K
- In the end, the K points in the heap are your solution
- Since size of heap capped at k, Time complexity nlogK Time complexity logK

import java.util.*; class Point { int x; int y; double dist; public Point(int x, int y) { this.x = x; this.y = y; this.dist = Math.sqrt(Math.pow(x * 1.0, 2) + Math.pow(y * 1.0, 2)); } } class Solution { public int[][] kClosest(int[][] points, int k) { PriorityQueue maxHeap = new PriorityQueue<Point>((x, y) -> Double.compare(y.dist, x.dist)); for (int i = 0 ; i < points.length ; i++ ) { maxHeap.offer(new Point(points[i][0], points[i][1])); if (maxHeap.size() >= k+1) maxHeap.poll(); } int ret[][] = new int[maxHeap.size()][2]; int i = 0; while (maxHeap.size() > 0) { Point p = (Point) maxHeap.poll(); ret[i][0] = p.x; ret[i][1] = p.y; i++; } return ret; } } |

academia writing brand clarinex 5mg oral clarinex

sildalis usa brand cozaar 50mg cozaar 25mg canada

order avapro 300mg generic purchase nortriptyline order pepcid sale

tacrolimus sale ropinirole over the counter order tricor 160mg generic