Given an index k, return the kth row of the Pascal's triangle.
For example, given k = 3,
Return [1,3,3,1]
.
转载出处:http://www.programcreek.com/2014/04/leetcode-pascals-triangle-ii-java/
list的最主要的实现类ArrayList,LinkedList
list的add,get,set方法
public class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> list=new ArrayList<Integer>();
if(rowIndex<0) return list;
list.add(1); //下边的第一层for循环是根据这行赋值的1一步步计算直到所要求的rowIndex为止
for(int n=1;n<=rowIndex;++n){ //因为n是从0开始的,所以是n<=rowIndex
for(int i=list.size()-2;i>=0;--i){ //注意上限和下限
list.set(i+1,list.get(i)+list.get(i+1));
//倒着计算,解决了顺着计算计算后的值会覆盖原值的情况,简直巧妙
}
list.add(1);
}
return list;
}
}
或者换汤不换药
public class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> list=new ArrayList<Integer>();
if(rowIndex<0) return list;
list.add(1);
for(int n=1;n<=rowIndex;++n){
for(int i=n-1;i>0;--i){
list.set(i,list.get(i)+list.get(i-1));
}
list.add(1);
}
return list;
}
}