Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.
In Pascal's triangle, each number is the sum of the two numbers directly above it.
Example:
Input: 5 Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1] ]
找规律:
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<>();
if(numRows <= 0 ) {
return res;
}
List<Integer> tmp = new ArrayList<>();
tmp.add(1);
res.add(tmp);
setValue(2,numRows,tmp,new ArrayList<>(), res);
return res;
}
public void setValue(int now ,int numRows, List<Integer> tmp, List<Integer> nowT,List<List<Integer>> res) {
if(now > numRows) {
return;
}else {
for(int i=0;i<now;i++) {
if(i==0 || i == now-1) {
nowT.add(1);
}else {
nowT.add(tmp.get(i-1)+tmp.get(i));
}
}
res.add(nowT);
setValue(now+1,numRows,nowT,new ArrayList<>(),res);
}
}
}