K closest points to origin
July 23, 2022
heapProblem URL: K closest points to origin
First we will calculate all the distances from the origin and put that on a list. Then we heapify that list, then pop top k elements and put their coordinate on a result array and return that.
class Solution:
def kClosest(self, points: List[List[int]], k: int) -> List[List[int]]:
pts = []
for x, y in points:
dist = (abs(x-0)**2) + (abs(y-0)**2)
pts.append((dist, x, y))
heapq.heapify(pts)
res = []
for _ in range(k):
dist, x, y = heapq.heappop(pts)
res.append([x, y])
return res
Time Complexity: O(nlog(n))
Space Complexity: O(n)