自学内容网 自学内容网

Leetcode 118.杨辉三角

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

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

示例 1:

输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

输入: numRows = 1
输出: [[1]]

提示:

  • 1 <= numRows <= 30

思路:就 i,j = i-1,j-1 + i-1,j;然后根据这个公式处理一下边界即可。

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> result = new ArrayList<>();
        for (int i = 0; i < numRows; i++) {
            List<Integer> list = new ArrayList<>();
            
            if (i == 0) {
                list.add(1);
                result.add(list);
                continue;
            }
            for (int j = 0; j < i+1; j++) {
                if (j==0 || j == i) list.add(1); 
                else {
                    int left = result.get(i-1).get(j-1);
                    int right = result.get(i-1).get(j);
                    list.add(left + right);
                }
            }

            result.add(list);
        }
        return result;
    }
}


原文地址:https://blog.csdn.net/qq_49979552/article/details/142328517

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!