Introducción

1

¿Ya tomaste el Curso Avanzado de Algoritmos: Patrones de Arrays y Strings?

Lista Enlazada

2

Estructura de datos: Lista Enlazada

3

Programando listas enlazadas con Java

4

Cómo Invertir una Lista Enlazada

5

Odd Even Linked List: análisis del problema

6

Solución de Odd Even Linked List

7

Playground: Odd Even Liked List

8

Programando Odd Even Linked List con C++

9

Linked List Cycle: análisis del problema

10

Solución de Linked List Cycle

11

Playground: Linked List Cycle

12

Programando Linked List Cycle con Python

13

Palindrome Linked List: análisis del problema

14

Solución de Palindrome Linked List

15

Playground: Palindrome Linked List

16

Programando Palindrome Linked List con Java

17

Reorder List: análisis del problema

18

Solución de Reorder List

19

Programando Reorder List con JavaScript

20

Playground: Reorder List Without Repeated Values

21

Reto: LRU Caché

22

Ejercicios recomendados de Lista Enlazada

23

Ejercicios resueltos de Lista Enlazada

Pilas y colas

24

Estructura de datos: Pilas y Colas

25

Paréntesis Válido: análisis del problema

26

Solución de Paréntesis Válido

27

Playground: Paréntesis Válido

28

Programando Paréntesis Válido con C++

29

Ejercicios recomendados de Pilas

Colas de prioridad

30

Estructura de datos: Colas de Prioridad

31

K Closest Points to Origin: análisis del problema

32

Solución de K Closest Points to Origin

33

Playground: K Closest Points to Origin

34

Programando K Closest Points to Origin con Python

35

Reorganize String: análisis del problema

36

Solución de Reorganize String

37

Playground: Reorganize String

38

Programando Reorganize String con Python

39

Ejercicios recomendados de Colas de prioridad

40

Ejercicios resueltos de Colas de prioridad

Próximos pasos

41

Toma el Curso Avanzado de Algoritmos: Grafos y Árboles

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

K Closest Points to Origin: análisis del problema

31/41
Recursos

Aportes 2

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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 un O(log n) pero aún no llegamos allá.

  • Para implementar el caso toca estudiar la Liberia heaqp nombrada en la clase anterior.

Hiii Guys \n Como dicese la Proffe. Debe Usarse Heap como DSA.. Yo asumiria un ArrayX2D Matrix Arr\[n]\[N] para guardar mis puntos cordenadas ( x¡, y¡ ) del plano Cartesiano sean guardados en int Arr\[]\[] ; luego se hace el calculo de la distancia Eucliliana d y se guardan en otro Array X1D comoo : int distance\[N] ; \nLuego Yo llamo my >Function void getTopKElelments( int Arr\[] , int arr.length , int k ) { // function bodty call to heapify } ,; \ndonde k es la cantidad de elementos cercanos al Origine (0,0) que quiero traer de mis puntos \nLuego hago las llamadas recursivas a Heapify para emplear la Heap como PriorityQueue en cuanto a la distancia al origne \n ahora quel o pienso Yo creo que nos podemos ahorrar el array distancias\[n] en Memoria y hacer todos directamente desde la Matrix ArrayX2D que guardase los puntos Originales del Problema. \nPD. se debe hacer uso del Heap como Estructura de datos : complete tree \[ aunque creo que eso es para el otro curso NoLineal Mas Avanzado ] \nde cualquier forma la complejidad Temporal segun veo estaria por =( nLogn ) \n