Lección 5: Arrays y dos punteros
Imagina un estante de libros que están justo uno al lado del otro: ¿quieres el tercero? Cuentas hasta tres y saltas directo a él. Eso es un array: llegar a un elemento por índice es O(1). Hoy conocemos un truco elegante, 'dos punteros' (two pointers): en vez de un marcador que recorre todo, usas dos
Dos punteros es como dos personas leyendo una fila larga desde extremos opuestos: una empieza al principio de la fila y la otra al final, y avanzan una hacia la otra hasta encontrarse en el medio. Así terminas rápido, en vez de que cada persona lea toda la fila sola.
- dos punteros
- Un patrón en el que dos índices se mueven sobre un array (desde los extremos hacia adentro o en la misma dirección) para resolver un problema en un solo recorrido.
- en el lugar (in-place)
- Modificar los datos dentro de la estructura existente sin asignar una nueva: O(1) de memoria extra.
- memoria contigua
- Guardar los elementos uno junto a otro en memoria, lo que permite acceso por índice en O(1) y un recorrido amigable con la caché.