题目描述:
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] ]
解题思路:
- 这道题的说白了就是找规律,我们不难发现每一行都是与前一行相关的
- 除去收尾两个 1,规律就是 当前元素等于上一行前面两个元素的和
代码如下:
public ArrayList<ArrayList<Integer>> generate(int numRows) {
ArrayList<ArrayList<Integer>> res =new ArrayList<>();
for(int i = 0; i < numRows; i++) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
if(i > 0){
ArrayList<Integer> temp = res.get(i -1);
int len = temp.size();
for(int j = 0; j < len - 1; j++){
list.add(temp.get(j) + temp.get( j + 1));
}
list.add(1);
}
res.add(new ArrayList<>(list));
}
return res;
}