Dos punteros en un array ordenado
Mueva los extremos hacia el centro hasta alcanzar el objetivo
Dos punteros en un array ordenado es una lección gratuita de Coding Interview Prep en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Coding Interview Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Coding Interview Prep incluye 4 lecciones en total.
Por qué usar dos punteros
La técnica de los dos punteros recorre un arreglo con dos índices en lugar de usar bucles anidados, y convierte muchas ideas O(n^2) en un único recorrido limpio O(n). 🎯
La palabra mágica es ordenado
La versión clásica necesita un arreglo ordenado. El orden permite razonar: avanzar hacia la derecha aumenta el valor y avanzar hacia la izquierda lo reduce, así que cada paso es una decisión real.
Dos punteros en los extremos
Coloque un puntero en el extremo izquierdo y otro en el extremo derecho. Se enfrentan y cerrarán poco a poco la distancia entre ellos.
left = 0
right = len(a) - 1Mueva los extremos hacia dentro
En cada paso, mueva exactamente un puntero hacia dentro. El orden del arreglo le indica qué lado debe mover para acercarse a su objetivo.
La condición del bucle
Siga iterando mientras left < right. Cuando se encuentren o se crucen, ya habrá comprobado todos los pares útiles y podrá detenerse.
while left < right:
# inspect a[left] and a[right]
passLeer la suma actual
Considere a[left] + a[right] como su candidato actual. Compararlo con un objetivo le indica si después necesita un valor mayor o menor.
total = a[left] + a[right]Demasiado pequeño: mueva el puntero izquierdo
Si la suma está por debajo del objetivo, necesita más. Mueva el puntero izquierdo hacia la derecha, en dirección a valores mayores, ya que el arreglo está ordenado de forma ascendente.
if total < target:
left += 1Demasiado grande: mueva el puntero derecho
Si la suma está por encima del objetivo, necesita menos. Mueva el puntero derecho hacia la izquierda, en dirección a valores menores, para reducir el total.
elif total > target:
right -= 1Cada paso descarta trabajo
Cada movimiento elimina todo un conjunto de pares que ya no necesita comprobar. Por eso el recorrido es lineal en lugar de cuadrático.
Por qué sigue siendo correcto
Solo descarta pares que no pueden coincidir, por lo que nunca omite la respuesta correcta. Esta seguridad hace que los dos punteros sean fiables en los concursos.
Más allá de los extremos
La misma idea permite resolver variantes: invertir en el propio arreglo, particionar y fusionar. Cuando domine los punteros que se encuentran, todas le resultarán familiares.
Comprobación rápida
Está recorriendo un arreglo ordenado desde ambos extremos para encontrar una suma objetivo.
Repaso
Dos punteros recorren un arreglo ordenado desde ambos extremos y mueven uno hacia dentro en cada paso mientras left < right. Es un método lineal y correcto, y sirve de base para muchos trucos. 🚀
Preguntas frecuentes
¿La lección «Dos punteros en un array ordenado» es gratis?
Sí — el texto completo de «Dos punteros en un array ordenado» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Coding Interview Prep, actualiza a CoddyKit PRO. El curso de Coding Interview Prep incluye 4 lecciones en total.
¿Qué aprenderé en «Dos punteros en un array ordenado»?
Mueva los extremos hacia el centro hasta alcanzar el objetivo Practicas Coding Interview Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Coding Interview Prep?
No se requiere experiencia previa. Coding Interview Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Dos punteros en un array ordenado»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Coding Interview Prep?
Sí. Cada lección de Coding Interview Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Dos punteros en un array ordenado
- Encuentre un par con una suma dada
- Elimine duplicados en el propio array
- Combine dos secuencias ordenadas