杨辉三角python_118. 杨辉三角(Python)

题目

难度:★☆☆☆☆

类型:数组

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

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

示例

输入: 5

输出:

[

[1],

[1,1],

[1,2,1],

[1,3,3,1],

[1,4,6,4,1]

]

解答

这道题很简单,通过简单的循环嵌套即可实现,这里需要注意的是初始化过程。

class Solution:

def generate(self, numRows):

if numRows == 0: # 输入为0,输出[]

return []

if numRows == 1: # 输入为1,输出第一层

return [[1]]

if numRows == 2: # 输入为2,输出前两层

return [[1], [1, 1]]

res, prev_layer = [[1], [1, 1]], [1, 1] # 初始化结果变量和上一层结果

for r in range(2, numRows):

cur_layer = [] # 初始化

for i in range(0, len(prev_layer)-1):

cur_layer.append(prev_layer[i]+prev_layer[i+1]) # 当前层结果

cur_layer = [1] + cur_layer + [1] # 左右两边添加1

res.append(cur_layer) # 添加当前层结果

prev_layer = cur_layer # 更新前一层结果为当前层结果

return res

如有疑问或建议,欢迎评论区留言~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值