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] ]
class Solution {
public List<List<Integer>> generate(int numRows) {
//a[i][j]=a[i-1][j-1]+a[i-1][j]
List<List<Integer>> ans = new ArrayList<List<Integer>>();
if(numRows == 0){
return ans;
}
List<Integer> t = new ArrayList<Integer>();
t.add(1);
ans.add(t);
for(int i = 2;i <= numRows;i++){
List<Integer> temp = new ArrayList<Integer>();
temp.add(1);
for(int j = 0; j < ans.get(ans.size() - 1).size() - 1;j++){
temp.add(ans.get(ans.size() - 1).get(j) + ans.get(ans.size() - 1).get(j + 1));
}
temp.add(1);
ans.add(temp);
}
return ans;
}
}
Given an index k, return the kth row of the Pascal's triangle.
For example, given k = 3,
Return [1,3,3,1]
.
class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> ans = new ArrayList<Integer>();
ans.add(1);
if (rowIndex ==0)
return ans;
else{
for(int i=0;i<rowIndex;i++){
List<Integer> temp = new ArrayList<Integer>();
temp.add(1);
for(int j=0;j<ans.size()-1;j++){
temp.add(ans.get(j)+ans.get(j+1));
}
temp.add(1);
ans=temp;
}
}
return ans;
}
}