力扣HOT100之动态规划:118. 杨辉三角

这道题很简单,感觉思路都不用怎么描述,直接给出动规五部曲的思考过程:

1.确定dp[i][j]的含义:杨辉三角中第i行第j列的值

2.确定递推公式:dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];

3.dp数组初始化:dp[i][0] = 1, dp[i][i] = 1

4.确定遍历顺序:从左往右,从上往下遍历

5.打印数组(省略)

我们在初始化的时候就先将每一行的第一个元素和最后一个元素赋值为1,然后就进入循环迭代,不断更新每个位置的值即可。

cpp 复制代码
class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        //动规五部曲
        //1.确定dp[i][j]的含义:杨辉三角中第i行第j列的值
        //2.确定递推公式:dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
        //3.dp数组初始化:dp[i][0] = 1, dp[i][i] = 1
        //4.确定遍历顺序:从左往右,从上往下遍历
        //5.打印数组(省略)
        vector<vector<int>> dp(numRows);
        //将每一层的首尾都赋值为1
        for(int i = 0; i < numRows; i++){
            dp[i].resize(i + 1);
            dp[i][0] = 1;
            dp[i][i] = 1;
        }
        for(int i = 0; i < numRows; i++){
            for(int j = 1; j < i; j++){
                dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
            }
        }
        return dp;
    }
};
相关推荐
智者知已应修善业26 分钟前
【C++无数组矩阵对角线平均值保留2位小数】2022-11-18
c语言·c++·经验分享·笔记·算法·矩阵
papership38 分钟前
【入门级-算法-6、排序算法: 计数排序】
数据结构·算法·排序算法
pengpeng0240 分钟前
力扣每日一题 611. 有效三角形的个数
算法·leetcode·职场和发展
2401_840105201 小时前
GESP C++5级 2025年6月编程2题解:最大公因数
数据结构·c++·算法
未知陨落1 小时前
LeetCode:56.子集
算法·leetcode·深度优先
PAK向日葵1 小时前
【算法导论】一道涉及到溢出处理的笔试题
算法·面试
哈泽尔都2 小时前
运动控制教学——5分钟学会样条曲线算法!(三次样条曲线,B样条曲线)
c++·人工智能·算法·机器学习·matlab·贪心算法·机器人
小镇学者2 小时前
【NOI】在信奥赛中 什么是函数交互题?
算法
未知陨落2 小时前
LeetCode:62.N皇后
算法·leetcode
myw0712053 小时前
Leetcode94.二叉数的中序遍历练习
c语言·数据结构·笔记·算法