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 com sinal 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 elemento interno soma os dois que estão acima dele. Na quarta linha, 3 = 1 + 2 e 3 = 2 + 1. Na quinta linha, 4 = 1 + 3, 6 = 3 + 3 e 4 = 3 + 1.

lock icon+13 testes ocultos ao enviar

challenge icon

Para ir além

Você consegue construir apenas a última linha em um único array, atualizando-a no próprio lugar, linha após linha, em vez de manter as linhas anteriores? Em que direção o loop interno deve ser executado e por quê?

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

Caso 1

Caso 2

Entrada

numRows = 5

Esperado

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