题目
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?
题目要求只用O(k)额外空间,其实分析下杨辉三角的计算方式,就知道只要O(1)的额外空间就行了。
代码
import java.util.ArrayList;
public class PascalsTriangleII {
public ArrayList<Integer> getRow(int rowIndex) {
ArrayList<Integer> results = new ArrayList<Integer>();
results.add(1);
for (int i = 1; i <= rowIndex; ++i) {
int temp = 1;
for (int j = 1; j < i; ++j) {
int innerTemp = results.get(j);
results.set(j, temp + results.get(j));
temp = innerTemp;
}
results.add(1);
}
return results;
}
}