Given numRows, generate the first numRows of Pascal’s triangle.
For example, given numRows = 5,
Return
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
[code]
public class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> list=new ArrayList<List<Integer>>();
if(numRows<1)return list;
ArrayList<Integer> one=new ArrayList<Integer>();
one.add(1);
list.add(one);
for(int i=1;i<numRows;i++)
{
List<Integer> row=new ArrayList<Integer>(), prev=list.get(list.size()-1);
row.add(1);
for(int j=1;j<=i-1;j++)
{
row.add(prev.get(j-1)+prev.get(j));
}
row.add(1);
list.add(row);
}
return list;
}
}
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?
[code]
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 i=1;i<=rowIndex;i++)
{
int size=list.size();
list.add(1);
for(int j=1;j<=size-1;j++)
{
int a=list.remove(0);
list.add(a+list.get(0));
}
list.remove(0);
list.add(1);
}
return list;
}
}