Сложность: easy
Дано целое число numRows. Верните первые numRows строк треугольника Паскаля.
В треугольнике Паскаля каждое число является суммой двух чисел, непосредственно расположенных над ним, как показано:
Пример:
Input: numRows = 5
Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
👨💻 Алгоритм:
1⃣Инициализируем список triangle, в который добавим первую строку [1].
2⃣Для каждой новой строки берём предыдущую строку и создаём новую, начиная и заканчивая единицей. Все промежуточные элементы считаем как сумму двух элементов сверху: prevRow[j - 1] + prevRow[j].
3⃣Добавляем полученную строку в треугольник. Повторяем процесс, пока не соберём все numRows.
😎 Решение:
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> triangle = new ArrayList<List<Integer>>();
triangle.add(new ArrayList<>());
triangle.get(0).add(1);
for (int rowNum = 1; rowNum < numRows; rowNum++) {
List<Integer> row = new ArrayList<>();
List<Integer> prevRow = triangle.get(rowNum - 1);
row.add(1);
for (int j = 1; j < rowNum; j++) {
row.add(prevRow.get(j - 1) + prevRow.get(j));
}
row.add(1);
triangle.add(row);
}
return triangle;
}
}Ставь 👍 и забирай 📚 Базу знаний
