Problema: K Closest Points to Origin
Dada una matriz de puntos donde puntos[i] = [xi, yi]
representa un punto del plano X-Y
y un número entero k
, devuelve los k
puntos más cercanos al origen (0, 0)
La distancia entre dos puntos del plano X-Y
es la distancia euclidiana.
Pues devolver la respuesta en cualquier orden. Se garantiza que la respuesta es única (excepto por el orden en que se encuentre).
.
- Ejemplo:
[[1, 3], [-2, 7], [3, 4], [-10, 1]]
k = 2
Output: [[1, 3], [3, 4]]
Investigando:
-
Hay un algoritmo llamado
k-vecinos más cercanos (KNN)
pero requiere de un Big O(n) para búsqueda lineal y/o de arboles para unO(log n)
pero aún no llegamos allá. -
Para implementar el caso toca estudiar la Liberia
heaqp
nombrada en la clase anterior.-
https://docs.python.org/es/3/library/heapq.html
heapq.heappush
para insertar los puntos en el heap según su distancia al origen.- la función
heapq.heappop
para extraer los k puntos más cercanos.
-
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?