LeetCode-118.杨辉三角

题目描述

给定一个非负整数 numRows生成「杨辉三角」的前 numRows 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例

1
2
输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
1
2
输入: numRows = 1
输出: [[1]]

提示:

  • 1 <= numRows <= 30

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
func generate(_ numRows: Int) -> [[Int]] {
var res = [[Int]]()
for row in 0 ..< numRows {
var rowNums = Array(repeating: 1, count: row + 1)
if row >= 2 { // 注意边界
for index in 1 ..< row {
rowNums[index] = res[row - 1][index - 1] + res[row - 1][index]
}
}
res.append(rowNums)
}
return res
}