原题:
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;
}
}
本文详细介绍了如何使用O(k)额外空间优化算法来计算扬辉三角第K行的数值,提供了从第2行开始的计算过程,并通过实例验证了算法的有效性和正确性。
1035

被折叠的 条评论
为什么被折叠?



