LeetCode刷题笔记(118,杨辉三角,Easy)

class Solution {
    public List> generate(int numRows) {
        List> result = new ArrayList>();
        if(numRows == 0){
            return result;
        }
        result.add(new ArrayList<>());
        result.get(0).add(1);
        for(int i = 1;i < numRows; i++){
            List currRow = new ArrayList<>();     //定义一个数组链表来存储当前行的数据
            List preRow = result.get(i-1);        //上一行的数据
            currRow.add(1);                                //无论如何,每一行的开头都是1
            for(int j = 1;j < i;j++){
                currRow.add(preRow.get(j-1) + preRow.get(j)); //每个数是它左上方和右上方的数的和,即与它索引相同和索引减1的值的总和
            }
            currRow.add(1);                                //无论如何,每一行的结尾都是1
            result.add(currRow);                           //一行循环结束,将currRow添加到结果集result中
        }
        return result;
    }
}

 

你可能感兴趣的:(LeetCode刷题笔记(118,杨辉三角,Easy))