题目描述
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?
题目分析
这题的难点在于满足空间复杂度,可以利用数组前面的值产生后面的值,这题还有一个注意点是:ArrayList最后一个元素需要调用add(index, element)方法。
java代码
public List<Integer> getRow(int rowIndex) {
List<Integer> list = new ArrayList<>();
// if (rowIndex == 0) return list;
list.add(0, 1);
for (int i = 0; i < rowIndex + 1; i++){
for(int j = i; j >= 0; j--){
if (j < i && j > 0)
list.set(j, list.get(j) + list.get(j - 1));
else if (j == 0) list.set(j, 1);
else if (j == i) list.add(j, 1);
}
}
return list;
}