Menu
CoddyTech

Pascal's Triangle

No triângulo de Pascal, a primeira linha é [1]. Cada linha seguinte tem uma entrada a mais, começa e termina com 1, e cada entrada entre elas é a soma das duas entradas diretamente acima dela. Você recebe um inteiro numRows. Retorne as primeiras numRows linhas do triângulo, começando pela linha do topo, cada linha como um array de inteiros.

Função

generate(numRows: integer) → integer-2d-array
numRowsinteger
quantas linhas do triângulo construir
Retornainteger-2d-array
as primeiras numRows linhas, começando pela linha superior

Restrições

  • 1 ≤ numRows ≤ 30
  • Todas as entradas das primeiras 30 linhas cabem em um inteiro assinado de 32 bits. A maior é 77558760, no meio da linha 30.

Exemplos

Entrada
numRows = 5
Saída
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
Explicação
Cada entrada interna soma as duas que estão acima dela. Quarta linha: 3 = 1 + 2 e 3 = 2 + 1. Quinta linha: 4 = 1 + 3, 6 = 3 + 3, 4 = 3 + 1.
challenge icon

Para ir além

Você consegue manter apenas um array e atualizá-lo no próprio lugar, linha após linha? Em que direção o loop interno deve ser executado e por quê?

Redefinir código
def generate(numRows):
    # Escreva o código aqui

Teste #1

Teste #2

Argumento

numRows = 5

Saída Esperada

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