0%

leetCode-119:Pascal's Triangle II

问题描述

给定一个正整数 n,要求找出杨辉三角中第 n 行的数字列表。题目链接:点我

样例输入输出

输入:3

输出:[1,3,3,1]

输入:0

输出:[1]

问题解法

观察杨辉三角每一行的数字,可以发现其数字呈现以下规律:1nn(n-1)/2n(n-1)(n-2)/(2*3)n(n-1)(n-2)(n-3)/(2*3*4)

、…、1,所以可以根据此直接算出每一行中的每个数字。代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> result = new ArrayList<>(rowIndex + 1);
result.add(1);
long prev = 1;
for (int i = 0; i < rowIndex; i++) {
prev = prev * (rowIndex - i) / (i + 1);
result.add((int) prev);
}

return result;
}
}