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?
public class Solution {
public ArrayList<Integer> getRow(int rowIndex) {
ArrayList<Integer> result=new ArrayList<Integer>();
ArrayList<Integer> pre=new ArrayList<Integer>();
rowIndex=rowIndex+1;
if(rowIndex==0)
return result;
if(rowIndex==1){
result.add(1);
return result;
}
if(rowIndex==2){
result.add(1);
result.add(1);
return result;
}
pre.add(1);
pre.add(1);
Integer a,b;
int size=0,j=0;
for(int i=3;i<=rowIndex;i++){
result=new ArrayList<Integer>();
size=pre.size();
j=0;
a=pre.get(j++);
result.add(a);
while(j<size){
b=pre.get(j++);
result.add(a+b);
a=b;
}
result.add(a);
pre=result;
}
return result;
}
}