leetcode做题笔记118. 杨辉三角

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

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

思路一:动态规划

cpp 复制代码
int** generate(int numRows, int* returnSize, int** returnColumnSizes){
    int **returnnum=(int **)malloc(sizeof(int *)*numRows);
    *returnSize = numRows;
    *returnColumnSizes = malloc(sizeof(int) * numRows);
    int i,j;
    for(i=0;i<numRows;i++){
        returnnum[i]=(int *)malloc(sizeof(int)*(i+1));
        (*returnColumnSizes)[i]=i+1;
        returnnum[i][0]=1;
        returnnum[i][i]=1;
        if(i>=2){
            for(j=1;j<i;j++){
                returnnum[i][j]=returnnum[i-1][j-1]+returnnum[i-1][j];
            }
        }
    }
    return returnnum;
}

分析:

本题要求杨辉三角,每个数为上一行相同位置和前一位数之和,可用循环将每个数利用上一行计算出来,最后输出dp,即returnnum

总结:

本题考察动态规划的应用,找到状态方程dpij = dpi-1j-1+dpi-1j即可解决

相关推荐
路弥行至13 小时前
Linux (ARM64 / Jetson) 挂载 exFAT 移动硬盘排障与离线安装指南
linux·运维·服务器·经验分享·笔记·jetson·exfat
s_w.h13 小时前
【 刷题 】双指针
算法
啥都想学点的研究生14 小时前
一篇文章讲清楚:K-Means聚类算法
算法·kmeans·聚类
白狐_79814 小时前
408 数据结构|KMP做题方法:next、nextval和高频易错点
数据结构·算法
月华路14 小时前
《模型不玄学》第20章 两种评估视角
人工智能·算法·机器学习
禹凕14 小时前
快速幂算法详解与实战
python·算法
知产xiao_xin14 小时前
《伯尔尼公约》适用的特殊情形
经验分享·笔记·知识产权
xxwl58514 小时前
高斯消元法异或版
人工智能·算法·机器学习
sylviiiiiia14 小时前
leetcode hot 100
python·算法·leetcode
OPEN-F15 小时前
ROS2系列教程:Gazebo插件(关节控制/IMU/激光雷达)
c++·python·数码相机·算法·机器人