Min, max, somma e totali progressivi
Aggregare una lista in un’unica passata
Min, max, somma e totali progressivi è una lezione Competitive Programming Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Competitive Programming Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Competitive Programming Academy include 4 lezioni in totale.
Aggregare in un solo passaggio
Molti problemi richiedono semplicemente un unico numero ottenuto da un array. Le funzioni integrate di Python eseguono questa aggregazione in un solo passaggio veloce sulla lista.
a = [4, 1, 7, 3]Calcolare la somma
sum(a) somma ogni elemento e restituisce il totale. È veloce quanto il C, quindi lo preferisca alla scrittura di un ciclo di accumulo personalizzato.
total = sum(a) # 15Il minimo e il massimo
min(a) e max(a) restituiscono rispettivamente il valore più piccolo e quello più grande. Scorrono l'intera lista una sola volta, in tempo O(n).
lo, hi = min(a), max(a)Confrontare due numeri
min e max accettano anche argomenti separati. max(x, y) sceglie il maggiore tra due valori senza creare prima una lista.
best = max(score, best)Aggregare con una chiave
Passi una funzione key per confrontare in base a un valore derivato. max(words, key=len) restituisce la parola più lunga, non quella massima in ordine lessicografico.
longest = max(words, key=len)Gestire la lista vuota
min e max generano un errore su una lista vuota. Passi default= oppure controlli prima la lunghezza per evitare un errore a runtime.
hi = max(a, default=0)L'idea dei totali progressivi
Un totale progressivo mantiene una somma mentre percorre l'array. È il punto di partenza delle somme prefisse e di molti metodi di conteggio.
run = 0
for x in a:
run += xTenere traccia del miglior risultato
Mantenga una variabile best-so-far durante la scansione per risolvere in un solo passaggio problemi dello stile del massimo sottarray.
best = a[0]
for x in a:
best = max(best, x)Costruire una lista di prefissi
Salvi ogni totale progressivo in una lista per ottenere un array dei prefissi. In seguito potrà calcolare le somme di intervalli sottraendo due elementi.
pre = [0]
for x in a:
pre.append(pre[-1] + x)La scorciatoia accumulate
itertools.accumulate produce per Lei i totali progressivi, così l'array dei prefissi diventa una sola riga affidabile.
from itertools import accumulate
pre = list(accumulate(a))Attenzione ai falsi miti sull'overflow
Buone notizie: gli interi di Python sono illimitati, quindi le somme molto grandi non vanno mai in overflow. Il vero rischio è un codice lento, non un'aritmetica errata.
huge = sum(range(10**6)) # fineVerifica rapida
Le serve la parola più lunga in una lista. Quale chiamata è corretta?
Riepilogo: la potenza di un solo passaggio
Ora sa sommare, trovare estremi e mantenere totali progressivi in un'unica scansione. Queste aggregazioni trasformano molti problemi sugli array in un solo ciclo. ✨
Domande Frequenti
La lezione «Min, max, somma e totali progressivi» è gratuita?
Sì — il testo completo di «Min, max, somma e totali progressivi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Competitive Programming Academy, passa a CoddyKit PRO. Il corso Competitive Programming Academy include 4 lezioni in totale.
Cosa imparerò in «Min, max, somma e totali progressivi»?
Aggregare una lista in un’unica passata Eserciti Competitive Programming Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Competitive Programming Academy?
Non è richiesta alcuna esperienza precedente. Competitive Programming Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Min, max, somma e totali progressivi»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Competitive Programming Academy?
Sì. Ogni lezione Competitive Programming Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Liste, indicizzazione e slicing per la programmazione competitiva
- Creare rapidamente array con le comprehension
- Min, max, somma e totali progressivi
- Trovare l’indice, non solo il valore