119.杨辉三角II


119.杨辉三角 II

给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。

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

img

示例 1:

输入: rowIndex = 3
输出: [1,3,3,1]

示例 2:

输入: rowIndex = 0
输出: [1]

示例 3:

输入: rowIndex = 1
输出: [1,1]

提示:

  • 0 <= rowIndex <= 33

题解:

class Solution {
    public List<Integer> getRow(int rowIndex) {
        if (rowIndex == 0) {
            List<Integer> arr =  new ArrayList<>();
            arr.add(1);
            return arr;
        }
        // return generate(rowIndex+1).get(rowIndex);
        return generate(rowIndex+1);
    }

    private List<Integer> generate(int numRows) {
        List<List<Integer>> yanghui = new ArrayList<>();
        ArrayList<Integer> rows = null;
        for (int row = 0; row < numRows; row++) {
            rows = new ArrayList<>();
            rows.add(1);
            for (int i = 1; i <= row - 1; i++) {
                rows.add(yanghui.get(row - 1).get(i - 1) + yanghui.get(row - 1).get(i));
            }
            if (row != 0) {
                rows.add(1);
            }
            yanghui.add(rows);
            if (row == numRows - 1) {
                return rows;
            }
        }
        return rows;
    }

    // private List<List<Integer>> generate(int numRows) {
    //     List<List<Integer>> yanghui = new ArrayList<>();
    //     for (int row = 0; row < numRows; row++) {
    //         ArrayList<Integer> rows = new ArrayList<>();
    //         rows.add(1);
    //         for (int i = 1; i <= row - 1; i++) {
    //             rows.add(yanghui.get(row - 1).get(i - 1) + yanghui.get(row - 1).get(i));
    //         }
    //         if (row != 0) {
    //             rows.add(1);
    //         }
    //         yanghui.add(rows);
    //     }
    //     return yanghui;
    // }
}

文章作者: Feliks
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Feliks !
评论
  目录