Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.
解法:主要考察细心和List api的熟练程度。包括add返回值,外层数据add时候数据的变更等。
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
if(numRows==0){
return res;
}
List<Integer> row1 = new ArrayList<Integer>();
row1.add(1);
res.add(row1);
//res.add(row.add(1)); 不能这样add,add的返回是boolean
if(numRows == 1){
return res;
}
List<Integer> row2 = new ArrayList<Integer>();
row2.add(1);
row2.add(1);
res.add(row2); //res在set的时候是以对象形式去set,如果两次set同一个对象row的时候,会变成 [1,1],[1,1],故需要分开成两个对象
if(numRows == 2){
return res;
}
for(int i=2 ; i<numRows; i++){
List<Integer> inner = new ArrayList<Integer>();
inner.add(1);
for(int j=1;j<i;j++){
inner.add(res.get(i-1).get(j-1)+res.get(i-1).get(j));
}
inner.add(1);
res.add(inner);
}
return res;
}
}