118. 杨辉三角

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

解题思路:
用1来填充链表,每行除了第一个元素和最后一个元素,将当前行的第j个元素与j+1元素的值相加得到下一行的第j个元素的值。

代码:

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res = new ArrayList<>();
        List<Integer> temp = new ArrayList<>();
        for(int i=0; i<numRows; i++){
            temp.add(1);
            for(int j=temp.size()-2; j>0; j--){
                temp.set( j, temp.get(j) + temp.get(j-1));
            }
            res.add(new ArrayList<>(temp));
        }
        return res;
    }
}

猜你喜欢

转载自blog.csdn.net/cramx6/article/details/80906623