Pascal’s Triangle

Share my LeetCode answer


Pascal’s Triangle

Given numRows, generate the first numRows of Pascal’s triangle.


class Solution {
    public List<List> generate(int numRows) {
        //定义返回数组
        List<List> result = new ArrayList<List>();
        if (numRows == 0) return result;  // 0行时输出为空
        
        List prev = new ArrayList(); //定义前一行数组
        prev.add(1);
        result.add(prev);
        
        for (int i = 2; i <= numRows; i++) {  //从第二行开始循环到numRows行
            List list = new ArrayList(); //定义每一行的数组
            list.add(1);
            
            for (int j = 1; j < i - 1; i++) {
                list.add(prev.get(j - 1) + prev.get(j));   //该行的当前元素等于前一行对应元素和之前元素相加
            }
            list.add(1);     
            result.add(list);
            prev = list;   //更改值
        }
        return result;
    }
}
</code></pre>

* 每一行中,除了头尾两个元素,都等于前一行的对应两个元素的和。
* 循环numRows次,依次输出每一行的数组。