Menu
CoddyTech

Pascal's Triangle

Nel triangolo di Pascal, la prima riga è [1]. Ogni riga successiva ha una voce in più, inizia e finisce con 1 e ogni voce intermedia è la somma delle due voci direttamente sopra di essa. Ricevi un numero intero numRows. Restituisci le prime numRows righe del triangolo, partendo dalla riga superiore, con ogni riga come array di numeri interi.

Funzione

generate(numRows: integer) → integer-2d-array
numRowsinteger
quante righe del triangolo costruire
Restituisceinteger-2d-array
le prime numRows righe, prima la riga superiore

Vincoli

  • 1 ≤ numRows ≤ 30
  • Ogni valore delle prime 30 righe rientra in un intero con segno a 32 bit. Il più grande è 77558760, al centro della riga 30.

Esempi

Input
numRows = 5
Output
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
Spiegazione
Ogni voce interna somma le due sopra di essa. Quarta riga: 3 = 1 + 2 e 3 = 2 + 1. Quinta riga: 4 = 1 + 3, 6 = 3 + 3, 4 = 3 + 1.
challenge icon

Per approfondire

Riesci a mantenere un solo array e ad aggiornarlo sul posto, riga dopo riga? In quale direzione deve procedere il ciclo interno, e perché?

Ripristina il codice
def generate(numRows):
    # Scrivi il codice qui

Test #1

Test #2

Argomento

numRows = 5

Output atteso

[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]