Menu
CoddyTech

Pascal's Triangle

В треугольнике Паскаля первая строка — это [1]. Каждая следующая строка на один элемент длиннее, начинается и заканчивается числом 1, а каждый элемент между ними равен сумме двух элементов непосредственно над ним. Тебе дано целое число numRows. Верни первые numRows строк треугольника, начиная с верхней строки; каждую строку представь в виде массива целых чисел.

Функция

generate(numRows: integer) → integer-2d-array
numRowsinteger
сколько строк треугольника нужно построить
Возвращаетinteger-2d-array
первые numRows строк, начиная с верхней строки

Ограничения

  • 1 ≤ numRows ≤ 30
  • Каждое значение в первых 30 строках помещается в 32-разрядное целое число со знаком. Наибольшее значение — 77558760 — находится в середине 30-й строки.

Примеры

Ввод
numRows = 5
Вывод
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
Пояснение
Каждый внутренний элемент складывает два элемента над ним. В четвёртой строке 3 = 1 + 2 и 3 = 2 + 1. В пятой строке 4 = 1 + 3, 6 = 3 + 3 и 4 = 3 + 1.

lock icon+13 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Можешь ли ты построить только последнюю строку в одном массиве, обновляя её на месте, строка за строкой, вместо того чтобы хранить предыдущие строки? В каком направлении должен выполняться внутренний цикл и почему?

Сбросить код
def generate(numRows):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Ввод

numRows = 5

Ожидается

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