Треугольник Паскаля
Easy JSДано целое число rowIndex - индекс строки в треугольнике. Нужно вернуть массив чисел, который соответсвует строке в треугольника Паскаля.
В треугольнике Паскаля каждое число является суммой двух чисел над ним.

Пример 1:
Ввод: rowIndex = 1 Вывод: [1, 1]
Пример 2:
Ввод: rowIndex = 0 Вывод: [1]
Пример 3:
Ввод: rowIndex = 4 Вывод: [1, 4, 6, 4, 1]
Решение
Возможно, кому-то будет проще визуализировать задачу в виде последовательных массивов. Каждый элемент такого массива, кроме первой и последней единиц, равен сумме двух чисел, стоящих над ним в предшествующей строке.


- Начинаем перебор с самого первого элемента и до заданного rowIndex;
- На каждом шаге добавляем одну единицу в массив, т.к. треугольник должен начинаться и заканчивается на 1;
- Для первых дух строк треугольника ([1] и [1,1]) нам не нужно никаких дополнительных манипуляций, следовательно, пропускаем цикл на 6 строке, если i меньше 2.
- Если i равен или больше 3, то подключаем дополнительную логику генерации строк. Рассмотрим подробнее на примере. Допустим, в цикле на 3 строке i = 2, следовательно, при входе в цикл на 6 строке result = [1, 1, 1], а j = 1 (2 - 1). Вычисление на 7 строке будет выглядеть так: result[1] = 1 + 1, где первое слагаемое это левое число над текущим, а второе - правое. Еще немного примеров. Массив [ 1, 2, 1, 1 ] после цикла на 6-8 строках превратится в [ 1, 3, 3, 1 ], а [ 1, 3, 3, 1, 1 ] в [ 1, 4, 6, 4, 1 ] и так далее.
Код решения в виде текста
/**
* @param {number} rowIndex
* @return {number[]}
*/
function getRow(rowIndex) {
let result = [];
for (let i = 0; i <= rowIndex; i++) {
result.push(1)
for (let j = i - 1; j > 0; j--) {
result[j] = result[j - 1] + result[j]
}
}
return result;
}
Больше интересных разборов в канале @js_is_easy, подписывайся