Description:
Given an index k, return the kth row of the Pascal’s triangle.
Note
Could you optimize your algorithm to use only O(k) extra space?
问题描述:
给一个索引k,返回第k层的杨辉三角,注意第0层为[1]
Ex:
given k = 3
Return [1,3,3,1]
解法一:
思路:
这个题目与上一题的Pascal Triangle I 不同,只要求返回某一行的杨辉三角数。所以这次需要的数据结构只要一个ArrayList.
第一个元素始终是1,在内层循环处理完之后,在新的ArrayList后加1。但是这次在处理元素时,不采用先前处理的add方法,换为set方法,更改元素值。
Code:
public class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> ret = new ArrayList<Integer>();
ret.add(1);
for(int i = 1; i <= rowIndex; i++){
for(int j = i - 1; j >= 1 ;j--){
int tmp = ret.get(j-1) + ret.get(j);
ret.set(j,tmp);
}
ret.add(1);
}
return ret;
}
}