Menu
CoddyTech

Pascal's Triangle

W trójkącie Pascala pierwszy wiersz to [1]. Każdy kolejny wiersz ma o jeden element więcej, zaczyna się i kończy na 1, a każdy element pomiędzy nimi jest sumą dwóch elementów znajdujących się bezpośrednio nad nim. Otrzymujesz liczbę całkowitą numRows. Zwróć pierwsze numRows wierszy trójkąta, zaczynając od górnego, każdy wiersz jako tablicę liczb całkowitych.

Funkcja

generate(numRows: integer) → integer-2d-array
numRowsinteger
ile wierszy trójkąta zbudować
Zwracainteger-2d-array
pierwszych numRows wierszy, najpierw górny wiersz

Ograniczenia

  • 1 ≤ numRows ≤ 30
  • Każda wartość z pierwszych 30 wierszy mieści się w 32-bitowej liczbie całkowitej ze znakiem. Największa to 77558760 i znajduje się w środku 30. wiersza.

Przykłady

Wejście
numRows = 5
Wyjście
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
Wyjaśnienie
Każdy wewnętrzny wpis dodaje dwie liczby znajdujące się nad nim. Czwarty wiersz: 3 = 1 + 2 i 3 = 2 + 1. Piąty wiersz: 4 = 1 + 3, 6 = 3 + 3, 4 = 3 + 1.
challenge icon

Pytanie dodatkowe

Czy możesz zachować tylko jedną tablicę i aktualizować ją na miejscu, wiersz po wierszu? W którą stronę musi przebiegać pętla wewnętrzna i dlaczego?

Zresetuj kod
def generate(numRows):
    # Napisz kod tutaj

Test #1

Test #2

Argument

numRows = 5

Oczekiwany wynik

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