原题:
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
题意:返回扬辉三角第K行数,从0开始记
最笨的想法:
用两个数组,计算时用到上次数组,代码如下:结果是通过的
public List<Integer> getRow(int rowIndex) {
List<Integer> list = new ArrayList<>();
if (rowIndex == 0) {
list.add(new Integer(1));
return list;
} else if (rowIndex == 1) {
list.add(new Integer(1));
list.add(new Integer(1));
return list;
} else {
List<Integer> oldList = new ArrayList<>(); //从第2行开始
oldList.add(new Integer(1));
oldList.add(new Integer(1));
for (int i = 1; i <= rowIndex; i++) {
list = new ArrayList<>();
list.add(new Integer(1));
for (int j = 1; j < i ; j++) {
list.add(oldList.get(j) + oldList.get(j -1));
}
list.add(new Integer(1));
oldList = list;
}
return list;
}
}