zoukankan      html  css  js  c++  java
  • 刷题-力扣-118. 杨辉三角

    118. 杨辉三角

    题目链接

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

    题目描述

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

    题目分析

    1. 根据题目描述生成杨辉三角形
    2. 假设dp[i][j]表示杨辉三角形中第i行第j个数的值,有状态转移方程
      当i-1>=0,j-1>=0时,dp[i][j]=dp[i-1][j-1][j]
      当j=0时,dp[i][j]=1
      当i==j时,dp[i][j]=1

    代码

    class Solution {
    public:
        vector<vector<int>> generate(int numRows) {
            vector<vector<int>> dp(numRows, vector<int>(1, 1));
            for (int i = 0; i < numRows - 1; ++i) {
                for (int j = 0; j < dp[i].size() - 1; ++j) {
                    dp[i + 1].emplace_back(dp[i][j] + dp[i][j + 1]);
                }
                dp[i + 1].emplace_back(1);
            }
            return dp;
        }
    };
    
  • 相关阅读:
    C# 正则表达式
    C# 预处理命令
    C# System.Collections
    C#文件流 System.IO和对文件的读写操作
    c# 网站发布
    C# 数据库
    c# 数据存储过程 存储函数
    insert 插入
    SVN远程管理
    【Win】印象笔记快捷键
  • 原文地址:https://www.cnblogs.com/HanYG/p/15262120.html
Copyright © 2011-2022 走看看