0Pricing
Coding Interview Prep · Lección

Sumas de ventanas de tamaño fijo

Deslice una ventana de longitud k en O(n)

Sumas de ventanas de tamaño fijo 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.

El problema de las sumas repetidas

Muchas tareas piden calcular la suma de cada bloque de k elementos consecutivos. Recalcular cada bloque desde cero es ineficiente, y puede hacerlo mejor. 🪟

Primero, la forma lenta

La idea ingenua suma por separado cada ventana de longitud k. Eso repite trabajo y cuesta O(n por k), lo cual es demasiado lento para entradas grandes.

for i in range(n - k + 1):
    s = sum(a[i:i + k])

La idea clave

Las ventanas vecinas se superponen casi por completo. Al avanzar un paso hacia la derecha, solo se elimina el elemento más a la izquierda y se añade un elemento nuevo a la derecha.

Inicialice la primera ventana

Comience sumando una sola vez los primeros k elementos. Esta suma inicial es la base que seguirá actualizando a medida que la ventana avance.

window = sum(a[:k])
best = window

Deslice un paso

Para mover la ventana, añada el elemento que entra y reste el que sale. Así, cada paso requiere un trabajo constante O(1).

for i in range(k, n):
    window += a[i] - a[i - k]

Mantenga la respuesta

Después de cada desplazamiento, actualice lo que necesite, como la suma máxima de una ventana encontrada hasta ese momento. El valor de la ventana siempre estará disponible al instante.

    best = max(best, window)

El costo total es lineal

Accede a cada elemento para añadirlo y una vez más para eliminarlo, por lo que todo el recorrido cuesta O(n). Esto permite superar fácilmente las restricciones de tamaño grande.

Cuidado con los índices

El elemento que sale de la ventana es a[i - k], no a[i - 1]. Usar correctamente este desplazamiento es la forma más común de evitar errores con ventanas de tamaño fijo.

Los promedios salen gratis

¿Necesita el promedio máximo de una ventana en lugar de la suma? Solo divida entre k la suma que mantiene de la ventana. La lógica deslizante no cambia en absoluto.

avg = window / k

Gestione los arreglos pequeños

Si el arreglo es más corto que k, no existe ninguna ventana completa. Compruebe de antemano len(a) frente a k y termine pronto para evitar un error de índice.

if n < k:
    return None

Cuándo convienen las ventanas fijas

Use este patrón cuando la longitud de la ventana sea fija y pueda combinar los valores de forma económica, por ejemplo, con sumas, conteos o estadísticas acumuladas sencillas.

Comprobación rápida

Desliza una ventana de tamaño k un paso hacia la derecha a través de un arreglo.

Resumen

Inicialice la primera ventana una vez y después añada y reste en cada paso para deslizarla en O(1). El recorrido completo de tamaño fijo se ejecuta en tiempo lineal. ✅

Preguntas frecuentes

¿La lección «Sumas de ventanas de tamaño fijo» es gratis?

Sí — el texto completo de «Sumas de ventanas de tamaño fijo» 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 «Sumas de ventanas de tamaño fijo»?

Deslice una ventana de longitud k en O(n) 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 «Sumas de ventanas de tamaño fijo»?

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

  1. Sumas de ventanas de tamaño fijo
  2. Ventana variable con dos punteros
  3. Subcadena más larga sin repeticiones
  4. Cuente ventanas que cumplen una regla
← Volver a Coding Interview Prep