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 znajdujący się pomiędzy nimi element jest sumą dwóch elementów leżących bezpośrednio nad nim. Otrzymujesz liczbę całkowitą numRows. Zwróć pierwsze numRows wierszy trójkąta, zaczynając od wiersza na samej górze. Każdy wiersz powinien być tablicą liczb całkowitych.

Funkcja

generate(numRows: integer) → integer-2d-array
numRowsinteger
ile wierszy trójkąta zbudować
Zwracainteger-2d-array
pierwsze numRows wierszy, zaczynając od górnego wiersza

Ograniczenia

  • 1 ≤ numRows ≤ 30
  • Każdy wpis w pierwszych 30 wierszach mieści się w 32-bitowej liczbie całkowitej ze znakiem. Największy z nich to 77558760 i znajduje się w środku wiersza 30.

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 element wewnętrzny dodaje do siebie dwa elementy znajdujące się nad nim. W czwartym wierszu 3 = 1 + 2 i 3 = 2 + 1. W piątym wierszu 4 = 1 + 3, 6 = 3 + 3 i 4 = 3 + 1.

lock icon+13 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Czy potrafisz zbudować tylko ostatni wiersz w pojedynczej tablicy, aktualizując go w miejscu, wiersz po wierszu, zamiast zachowywać wcześniejsze wiersze? W którą stronę musi przebiegać pętla wewnętrzna i dlaczego?

Zresetuj kod
def generate(numRows):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Wejście

numRows = 5

Oczekiwane

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