前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeedCode 118. 杨辉三角 动态规划入门

LeedCode 118. 杨辉三角 动态规划入门

作者头像
静谧星空TEL
发布2022-11-02 18:17:52
2690
发布2022-11-02 18:17:52
举报
文章被收录于专栏:云计算与大数据技术

 一、问题描述

给定一个非负整数 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

二、问题解决

代码语言:javascript
复制
from typing import List

class Solution:
    def generate(self, n: int) -> List[List[int]]:
        ## 1、构造杨辉三角列表
        dp = [[1 for _ in range(num)] for num in range(1, n + 1)]
        ## 2、遍历杨辉三角列表
        for i in range(n):
            cols = i + 1
            for j in range(cols):
                ## print(i, j, end="\t")
                if i < 2 or j == 0 or j == cols-1:
                    dp[i][j] = 1    ## 3、边界问题解决
                else:               ## 4、核心逻辑实现
                    dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]
        return dp

slt = Solution()
dp = slt.generate(5)
print(dp)

三、解题思路

  1. 构造杨辉三角列表
  2. 遍历杨辉三角列表
  3. 边界问题解决
  4. 核心逻辑实现

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/pascals-triangle 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  一、问题描述
  • 二、问题解决
  • 三、解题思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档