0Pricing
Competitive Programming Academy · Lección

Min, max, sum y totales acumulados

Agregue una lista en una sola pasada

Min, max, sum y totales acumulados es una lección gratuita de Competitive Programming Academy en CoddyKit. Esta es la lección 3 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 Competitive Programming Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Competitive Programming Academy incluye 4 lecciones en total.

Agregar en una sola pasada

Muchos problemas solo necesitan obtener un número de un array. Las funciones integradas de Python realizan esta agregación en una sola pasada rápida por la lista.

a = [4, 1, 7, 3]

Sumarlo todo

sum(a) suma todos los elementos y devuelve el total. Es tan rápido como C, así que prefiera usarlo en lugar de escribir su propio bucle de acumulación.

total = sum(a)  # 15

El menor y el mayor

min(a) y max(a) devuelven los valores menor y mayor. Recorren toda la lista una vez, en tiempo O(n).

lo, hi = min(a), max(a)

Comparar dos números

min y max también aceptan argumentos independientes. max(x, y) elige el mayor de dos valores sin crear primero una lista.

best = max(score, best)

Agregar con una clave

Pase una función de clave para comparar mediante un valor derivado. max(words, key=len) devuelve la palabra más larga, no el máximo lexicográfico.

longest = max(words, key=len)

Controlar la lista vacía

min y max fallan con una lista vacía. Pase default= o compruebe primero la longitud para evitar un error de ejecución.

hi = max(a, default=0)

La idea del total acumulado

Un total acumulado conserva una suma mientras recorre el array. Es la base de las sumas de prefijos y de muchas técnicas de conteo.

run = 0
for x in a:
    run += x

Conservar el mejor valor encontrado

Mantenga una variable con el mejor valor hasta el momento mientras recorre el array para resolver preguntas del tipo de subarray máximo en una sola pasada.

best = a[0]
for x in a:
    best = max(best, x)

Construir una lista de prefijos

Guarde cada total acumulado en una lista para obtener un array de prefijos. Después puede responder consultas de sumas de rangos restando dos elementos.

pre = [0]
for x in a:
    pre.append(pre[-1] + x)

Atajo de accumulate

itertools.accumulate genera los totales acumulados por usted, por lo que el array de prefijos se obtiene en una sola línea fiable.

from itertools import accumulate
pre = list(accumulate(a))

Cuidado con los mitos sobre el desbordamiento

Buenas noticias: los enteros de Python tienen tamaño ilimitado, así que las sumas grandes nunca sufren desbordamiento. El riesgo real es tener código lento, no una aritmética incorrecta.

huge = sum(range(10**6))  # fine

Comprobación rápida

Necesita encontrar la palabra más larga de una lista. ¿Qué llamada es correcta?

Repaso: potencia de una sola pasada

Ahora puede sumar, encontrar extremos y mantener totales acumulados en un solo recorrido. Estas agregaciones convierten muchos problemas de arrays en un único bucle. ✨

Preguntas frecuentes

¿La lección «Min, max, sum y totales acumulados» es gratis?

Sí — el texto completo de «Min, max, sum y totales acumulados» 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 Competitive Programming Academy, actualiza a CoddyKit PRO. El curso de Competitive Programming Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Min, max, sum y totales acumulados»?

Agregue una lista en una sola pasada Practicas Competitive Programming Academy 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 Competitive Programming Academy?

No se requiere experiencia previa. Competitive Programming Academy 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 3 de 4.

¿Cuánto tiempo toma la lección «Min, max, sum y totales acumulados»?

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 Competitive Programming Academy?

Sí. Cada lección de Competitive Programming Academy 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. Listas, indexación y slicing para CP
  2. Construya arrays rápidamente con comprehensions
  3. Min, max, sum y totales acumulados
  4. Encuentre el índice, no solo el valor
← Volver a Competitive Programming Academy