From 88ff63f5c448cbc7722904d191886f078efc4d86 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Mon, 14 Sep 2026 12:37:11 -0400 Subject: [PATCH] =?UTF-8?q?docs(docs):=20add=20MDX=20page=20for=20LeetCode?= =?UTF-8?q?=20973=E2=80=AFK=E2=80=AFClosest=20Points=20to=20Origin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../973-k-closest-points-to-origin.mdx | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 apps/docs/content/(array)/973-k-closest-points-to-origin.mdx diff --git a/apps/docs/content/(array)/973-k-closest-points-to-origin.mdx b/apps/docs/content/(array)/973-k-closest-points-to-origin.mdx new file mode 100644 index 0000000..3a5d1fc --- /dev/null +++ b/apps/docs/content/(array)/973-k-closest-points-to-origin.mdx @@ -0,0 +1,48 @@ +--- +title: '973. K Closest Points to Origin' +description: 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) +sidebar: + label: 'K Closest Points to Origin' + badge: 'Medium' +--- + +Heap / Priority Queue + +### 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. + +### Constraints: + +- `1 <= k <= points.length <= 10^4` +- `-10^4 <= xi, yi <= 10^4` + +## Solution + +```py +import heapq + + +class Solution: + def kClosest(self, points: List[List[int]], k: int) -> List[List[int]]: + minHeap = [] + for x, y in points: + dist = (x**2) + (y**2) + minHeap.append([dist, x, y]) + + heapq.heapify(minHeap) + res = [] + + while k > 0: + dist, x, y = heapq.heappop(minHeap) + res.append([x, y]) + k -= 1 + + return res +```