题目
给定一个非负索引 rowIndex
,返回「杨辉三角」的第 rowIndex
行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: rowIndex = 3
输出: [1,3,3,1]
1
2
2
示例 2:
输入: rowIndex = 0
输出: [1]
1
2
2
示例 3:
输入: rowIndex = 1
输出: [1,1]
1
2
2
提示:
0 <= rowIndex <= 33
进阶:
你可以优化你的算法到 O (
rowIndex)
空间复杂度吗?
题解
java
public List<Integer> getRow(int rowIndex) {
List<Integer> result = new ArrayList<>();
result.add(1);
if (rowIndex > 0) {
result.add(1);
}
for (int i = 2; i <= rowIndex; i++) {
int previous = 1;
for (int j = 1; j < i; j++) {
int temp = result.get(j);
result.set(j, temp + previous);
previous = temp;
}
result.add(1);
}
return result;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18