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

总结:

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

相关推荐
rechol10 分钟前
汇编与底层编程笔记
汇编·arm开发·笔记
夜晚中的人海12 分钟前
【C++】滑动窗口算法习题
开发语言·c++·算法
violet-lz1 小时前
数据结构四大简单排序算法详解:直接插入排序、选择排序、基数排序和冒泡排序
数据结构·算法·排序算法
·白小白1 小时前
力扣(LeetCode) ——118.杨辉三角(C++)
c++·算法·leetcode
lzj_pxxw1 小时前
嵌入式开发技巧:舍弃标志位,用宏定义函数实现程序单次运行
笔记·stm32·单片机·嵌入式硬件·学习
CoovallyAIHub1 小时前
超越“识别”:下一代机器视觉如何破解具身智能落地难题?
深度学习·算法·计算机视觉
仰泳的熊猫1 小时前
LeetCode:207. 课程表
数据结构·c++·算法·leetcode
liu****2 小时前
19.map和set的封装
开发语言·数据结构·c++·算法
水冗水孚2 小时前
双指针算法在实际开发中的具体应用之代码Review文章字符串的片段分割
算法·leetcode
DuHz2 小时前
用于汽车雷达应用的步进频率PMCW波形——论文阅读
论文阅读·算法·汽车·信息与通信·信号处理·毫米波雷达