题目描述:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
方法一:数学
首先观察这个三角形的特点,杨辉三角形是一个等边三角形,其中左边和右边每个格子的值都是1。
三角形斜的不好看,如果我们把这个三角形往左边拉直就会发现,除了两边的都是1以外,其他每个格子的值都是他正上面格子和左上角格子的和。
1 | class Solution { |
复杂度分析
- 时间复杂度:O(numRows2)。
- 空间复杂度:O(1)。不考虑返回值的空间占用。
执行结果:通过
执行用时:1 ms, 在所有 Java 提交中击败了54.68%的用户
内存消耗:36.5 MB, 在所有 Java 提交中击败了21.42%的用户