Skip to main content
AI EducademyAIEducademy
🌳

Fundamentos de IA

🌱
AI Seeds

Alfabetización en IA para el mundo real

🌿
AI Sprouts

Las bases detrás de los sistemas inteligentes

🌳
AI Branches

Construya con las capacidades de IA actuales

🏕️
AI Canopy

Diseñar sistemas GenAI confiables

🌲
AI Forest

Envíe productos de IA de forma responsable

🔨

Maestría en IA

✏️
AI Sketch

Fundamentos de ingeniería para creadores de IA

🪨
AI Chisel

Patrones para resolver problemas más difíciles.

⚒️
AI Craft

Diseñar sistemas que escalen la IA

💎
AI Polish

Comunicarse y liderar en la era de la IA

🏆
AI Masterpiece

Su piedra angular de la IA de producción

🚀

Preparación Profesional

🚀
Plataforma de Entrevistas

Navegue por el mercado laboral de ingeniería de IA

🌟
Dominio Conductual

Cuente la historia de cómo crea impacto

💻
Entrevistas Técnicas

Resolver, diseñar y comunicar bajo presión.

🤖
Entrevistas de IA y ML

Prepárese para las entrevistas modernas ML y GenAI

🏆
Oferta y Más Allá

Haga un próximo paso informado y con confianza

Ver Todos los Programas→

laboratorio

7 experimentos cargados
🧠Playground de Red Neuronal🤖¿IA o Humano?💬Laboratorio de Prompts🎨Generador de Imágenes😊Analizador de Sentimiento💡Constructor de Chatbots⚖️Simulador de Ética
🎯Entrevista simuladaEntrar al Laboratorio→
ViajeBlog
🎯
Acerca de

Hacer la educación en IA accesible para todos, en todas partes

❓
Preguntas frecuentes

Preguntas frecuentes resueltas

🧰
Herramientas de IA

Herramientas seleccionadas que usamos y recomendamos

✉️
Contacto

Ponte en contacto con nosotros

⭐
Codigo abierto

Construido de forma abierta en GitHub

Precios
Empezar
AI EducademyAIEducademy

© 2026 AI Educademy. Todos los derechos reservados.

Aprender

  • Programas
  • Lecciones
  • Laboratorio
  • Kit de inicio de IA
  • Precios

Comunidad

  • GitHub
  • Contribuir
  • Código de Conducta
  • Acerca de
  • Preguntas Frecuentes

Soporte

  • Invítame a un Café ☕
  • Términos de Servicio
  • Política de Privacidad
  • Contacto
  • Sitemap
Programas de IA e Ingeniería›🪨 AI Chisel›Lecciones›Dos punteros y ventana deslizante: cómo la IA escanea datos de manera eficiente
👆
AI Chisel • Intermedio⏱️ 15 min de lectura

Dos punteros y ventana deslizante: cómo la IA escanea datos de manera eficiente

🤖

Esta lección se tradujo automáticamente al español y aún no ha sido revisada por una persona. Si algo suena raro, la versión en inglés es la definitiva.

Por qué es importante escanear de forma inteligente

Imagine una IA monitoreando una transmisión de video en vivo en busca de actividad sospechosa. No puede volver a ver la grabación completa cada segundo; necesita deslizar una ventana de atención a lo largo de la transmisión, manteniendo un registro del contexto suficiente. Eso es exactamente lo que hacen los patrones dos punteros y ventana deslizante para datos secuenciales.

Ambas técnicas convierten los escaneos O(n²) de fuerza bruta en elegantes pases O(n).

Dos punteros que convergen desde ambos extremos de una matriz y una ventana deslizante que se mueve a través de un flujo de datos
Dos punteros reducen el espacio de búsqueda; una ventana corrediza mantiene una vista corriente.

La técnica de los dos punteros

Coloque dos referencias en una secuencia y muévalas según una regla. Hay dos sabores principales.

Punteros convergentes

Comience con un puntero en cada extremo y muévalos hacia adentro. Perfecto para datos ordenados.

Problema clásico: suma de pares: Dada una matriz ordenada, encuentre dos números que se sumen a un objetivo.

function pairSum(arr, target):
    left = 0
    right = arr.length - 1
    while left < right:
        sum = arr[left] + arr[right]
        if sum == target: return (left, right)
        if sum < target: left += 1
        else: right -= 1
    return null

Debido a que la matriz está ordenada, mover left hacia la derecha aumenta la suma y mover right hacia la izquierda la disminuye, lo que garantiza que nunca nos perderemos un par válido.

Punteros en la misma dirección

Ambos punteros avanzan, pero a diferentes velocidades. Útil para particionamiento o detección de ciclos.

Ejemplo: eliminar duplicados in situ: Un puntero lento marca la posición de escritura; un puntero rápido escanea hacia adelante.

function removeDuplicates(arr):
    slow = 0
    for fast in 1..arr.length - 1:
        if arr[fast] != arr[slow]:
            slow += 1
            arr[slow] = arr[fast]
    return slow + 1
Lección 1 de 100% completado
←Volver al programa
Continuar: Árboles y búsqueda binaria: cómo la IA toma decisiones rápidas→

Debate

Inicia sesión para unirte al debate

Sugerir una edición a esta lección
🧠Verificación Rápida

En la técnica convergente de dos punteros en una matriz ordenada, ¿qué se debe hacer cuando la suma actual es menor que el objetivo?

El patrón de ventana corrediza

Una ventana deslizante mantiene una subsecuencia contigua de tamaño k (fijo) o de longitud variable, actualizando los agregados de forma incremental en lugar de volver a calcularlos desde cero.

Ventana de tamaño fijo

Deslice una ventana de exactamente k elementos a lo largo de la matriz.

Ejemplo: suma máxima de k elementos consecutivos:

function maxSubarraySum(arr, k):
    windowSum = sum(arr[0..k-1])
    best = windowSum
    for i in k..arr.length - 1:
        windowSum += arr[i] - arr[i - k]
        best = max(best, windowSum)
    return best

Cada paso agrega el nuevo elemento que ingresa a la ventana y resta el que sale: O (1) por movimiento.

Ventana de tamaño variable

Expanda la ventana para incluir más datos y luego redúzcala cuando se infrinja una restricción.

Ejemplo: subcadena más larga sin caracteres repetidos:

function longestUnique(s):
    seen = {}
    left = 0
    best = 0
    for right in 0..s.length - 1:
        if s[right] in seen and seen[s[right]] >= left:
            left = seen[s[right]] + 1
        seen[s[right]] = right
        best = max(best, right - left + 1)
    return best
🤯
Las plataformas de análisis de streaming como Apache Flink utilizan ventanas deslizantes y giratorias como primitivas de primera clase: el mismo concepto ampliado a millones de eventos por segundo.

Aplicaciones reales de IA

| Patrón | Caso de uso de IA | |---------|------------| | Ventana fija | Detección de anomalías en las últimas k lecturas del sensor | | Ventana variable | Encontrar el intervalo de texto más corto que contenga todas las palabras clave de consulta (motores de búsqueda) | | Punteros convergentes | Controles eficientes del vecino más cercano en dimensiones de incrustación ordenadas | | Punteros en la misma dirección | Fusionar listas de resultados ordenados de múltiples modelos de recuperación |

🤔
Think about it:Un asistente de voz almacena en buffer los últimos 3 segundos de audio para detectar una palabra de activación. ¿Qué patrón es este: ventana fija o ventana variable? ¿Qué sucede si la palabra de activación es más larga que el búfer?

Cuándo usar cuál

  • Dos punteros (convergentes): entrada ordenada, búsqueda de pares/tripletes, comprobaciones de palíndromo.
  • Dos sugerencias (misma dirección): modificaciones en el lugar, problemas de corredor rápido/lento.
  • Ventana corredera fija: agregado sobre un tamaño de ventana conocido.
  • Ventana corredera variable: encuentre la ventana más pequeña o más grande que cumpla una condición.
🧠Verificación Rápida

¿Qué patrón elegirías para encontrar el subconjunto más pequeño cuya suma excede un valor dado?

🤔
Think about it:¿Podrías combinar dos punteros con una ventana corredera? Piense en problemas en los que necesita encontrar un par dentro de una ventana móvil de datos; por ejemplo, detectar transacciones duplicadas dentro de una ventana de cinco minutos.

Conclusiones clave

  1. Dos punteros eliminan los bucles anidados aprovechando el orden o la partición.
  2. Las ventanas corredizas mantienen el estado de ejecución para que cada elemento se procese como máximo dos veces.
  3. Ambos patrones son fundamentales en los procesos de IA en tiempo real, desde la detección de anomalías hasta la clasificación de búsqueda.
🧠Verificación Rápida

¿Cuál es la complejidad de tiempo típica que se logra al convertir un bucle anidado de fuerza bruta en una solución de dos punteros o de ventana deslizante?