Menu
CoddyTech

Pascal's Triangle

Nel triangolo di Pascal, la prima riga è [1]. Ogni riga successiva contiene un elemento in più, inizia e finisce con 1 e ogni elemento intermedio è la somma dei due elementi direttamente sopra di esso. Ricevi un intero numRows. Restituisci le prime numRows righe del triangolo, partendo dalla riga superiore, con ogni riga come array di interi.

Funzione

generate(numRows: integer) → integer-2d-array
numRowsinteger
quante righe del triangolo costruire
Restituisceinteger-2d-array
le prime numRows righe, iniziando dalla riga in alto

Vincoli

  • 1 ≤ numRows ≤ 30
  • Ogni voce delle prime 30 righe rientra in un intero con segno a 32 bit. La 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 elemento interno somma i due che ha sopra. Nella quarta riga, 3 = 1 + 2 e 3 = 2 + 1. Nella quinta riga, 4 = 1 + 3, 6 = 3 + 3 e 4 = 3 + 1.

lock icon+13 test nascosti all’invio

challenge icon

Per approfondire

Puoi costruire solo l’ultima riga in un singolo array, aggiornandola sul posto riga dopo riga invece di mantenere le righe precedenti? In quale direzione deve procedere il ciclo interno e perché?

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

Caso 1

Caso 2

Input

numRows = 5

Atteso

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