Contenido del curso
Dos Apuntadores
- 3

Patrón de dos apuntadores en algoritmos
Viendo ahora - 4

Verificación de Orden en Diccionario Alienígena
02:56 min - 5

Ordenamiento de Palabras en Idiomas Alienígenas
12:04 min - 6

Playground: Verifying Alien Dictionary
- 7

Ordenación de Palabras en Diccionario Alienígena
15:07 min - 8

Cómo fusionar dos arrays ordenados sin memoria extra
02:10 min - 9

Ordenamiento de Listas con Complejidad Óptima y Espacio Constante
11:44 min - 10

Playground: Merge Two Sorted Lists
- 11

Intercalación de Listas Ordenadas en Python
09:04 min - 12

Resolver el problema "Container with Most Water" en Python
01:18 min - 13

Cálculo Óptimo de Área en Listas de Alturas
09:02 min - 14

Playground: Container with Most Water
- 15

Implementación de solución de cálculo de área máxima en Java
15:42 min - 16

Implementación de Trapping Rainwater en Complejidad Lineal
01:02 min - 17

Retos de Algoritmos con Apuntadores en Python
02:44 min - 18

Patrones de Dos Apuntadores: Soluciones a Problemas Comunes en Python
06:43 min
Ventana Deslizante
- 19

Patrón Ventana Deslizante para Análisis de Datos Secuenciales
02:32 min - 20

Subcadena más larga sin repetir caracteres
01:51 min - 21

Algoritmo de Ventana Deslizante para Subcadenas Únicas
11:05 min - 22

Playground: Longest Substring Without Repeating Characters
- 23

Sliding Window para substring sin repeticiones
14:15 min - 24

Retos de Algoritmos: Dos Apuntadores y Subcadenas
01:50 min - 25

Máximos 1s Consecutivos y Subcadenas sin Repeticiones
03:22 min
Búsqueda Binaria
- 26

Algoritmo de búsqueda binaria en listas ordenadas
09:26 min - 27

Búsqueda en Arrays Rotados: Encontrar Entero en Lista Ordenada
02:19 min - 28

Búsqueda Binaria en Arreglos Rotados
04:59 min - 29

Playground: Search in Rotated Arrays
- 30

Búsqueda en Arrays Rotados con C++
10:53 min - 31

Búsqueda eficiente en matriz ordenada MxN
01:44 min - 32

Búsqueda binaria en matriz 2D ordenada
06:33 min - 33

Playground: Search 2D Array Matrix
- 34

Búsqueda Binaria en Matrices con Python
07:48 min
Próximos pasos
Patrón de dos apuntadores en algoritmos
Resumen
El patrón de dos apuntadores es una técnica que usa dos índices para recorrer una lista de datos de forma estratégica, evitando comparaciones redundantes y mejorando la complejidad de tus algoritmos. Si estás aprendiendo estructuras de datos o preparando entrevistas técnicas, dominarlo te abre la puerta a soluciones más limpias y eficientes.
¿Qué es el patrón de dos apuntadores en algoritmos?
En esencia, usas dos enteros que apuntan a posiciones dentro de una lista. Esos índices se mueven según condiciones específicas que dependen del problema que estás resolviendo.
La idea no es comparar todo contra todo. Es comparar solo lo que realmente importa, en el momento que importa. Y ahí está la ganancia.
¿Para qué sirve el patrón de dos apuntadores? Sirve para recorrer una lista usando dos índices que se mueven bajo ciertas condiciones, evitando comparaciones repetidas y reduciendo el costo computacional de tu algoritmo.
¿Por qué mejora la complejidad de tu algoritmo?
Cuando comparas todos los elementos contra todos, terminas haciendo trabajo de más. Repites operaciones que ya hiciste, y eso infla la complejidad sin necesidad.
Con dos apuntadores eliges qué comparar y cuándo moverte. Esa decisión inteligente recorta pasos innecesarios y hace que tu solución escale mejor con listas grandes.
¿Cómo puedes ubicar y mover los dos apuntadores?
No hay una sola forma. La posición inicial y la regla de movimiento dependen del problema que tengas enfrente. Pero hay configuraciones clásicas que vale la pena conocer.
Apuntadores en los extremos moviéndose hacia el centro
Una configuración típica es colocar un apuntador al inicio de la lista y otro al final, y luego moverlos hacia el centro hasta que se encuentren. Cuando se encuentran, ya revisaste todos los datos relevantes.
El movimiento no siempre es de a un paso a la vez. Incrementas el primer apuntador o disminuyes el segundo solo si se cumplen ciertas condiciones del problema [00:55].
Un caso clásico donde esta configuración es la solución óptima: verificar si una palabra es palíndroma, es decir, que se lee igual de izquierda a derecha que de derecha a izquierda [01:30].
¿Qué es una palabra palíndroma? Es una palabra que se escribe igual de izquierda a derecha que de derecha a izquierda, como reconocer o anilina. El patrón de dos apuntadores permite verificarlo comparando extremos hacia el centro.
Apuntadores consecutivos comparando elementos vecinos
Otra forma es colocar los dos apuntadores en posiciones contiguas. Por ejemplo, uno en el primer valor y otro en el siguiente, y los mueves juntos a lo largo de la lista [01:50].
Esto es útil cuando necesitas comparar o calcular algo entre un elemento y el que viene justo después, recorriendo toda la secuencia.
¿Cuándo conviene usar dos apuntadores?
Este patrón brilla cuando tu problema involucra listas o arreglos y necesitas:
- Comparar elementos en extremos opuestos.
- Evaluar pares de valores consecutivos.
- Buscar coincidencias o diferencias sin recorrer la lista varias veces.
- Reducir una solución de complejidad cuadrática a una lineal.
La clave está en identificar qué condición dispara el movimiento de cada apuntador. Esa lógica es la que define si la técnica encaja con tu problema.
A simple vista suena abstracto, y lo es hasta que lo aterrizas en código. En las siguientes clases vas a ver problemas concretos donde este patrón cobra sentido. ¿Qué problema crees que podrías resolver tú con dos apuntadores? Cuéntamelo en los comentarios.