Star

LeetCode Pascal's Triangle

Question 2: 119. Pascal's Triangle II

Given an index k, return the kth row of the Pascal's triangle.

For example, given k = 3, Return [1,3,3,1].

Note: Could you optimize your algorithm to use only O(k) extra space?

Explanation

先开始用了递归的方法,得到上一层以后再计算此层。但是不满足O(k)space。所以比较好的方法是在该层从左往右依次计算,最左和最右为1。

Code

1
2
3
4
5
6
7
8
9
public List<Integer> getRow(int rowIndex) {
List<Integer> res = new ArrayList<Integer>();
for(int i = 0;i<rowIndex+1;i++) {
res.add(1);
for(int j=i-1;j>0;j--) {
res.set(j, res.get(j-1)+res.get(j));
}
}
return res;