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]即可解决

相关推荐
ouliten4 分钟前
C++笔记:std::hash
c++·笔记·哈希算法
武帝为此5 分钟前
【专家系统介绍】
人工智能·算法
@insist1236 分钟前
软件设计师-分治法核心原理与典型应用
算法·软考·软件设计师·软件水平考试
机器学习之心6 分钟前
PSO-SVR粒子群算法优化支持向量机回归+SHAP分析+新数据预测,MATLAB代码
算法·支持向量机·回归·pso-svr·灰狼算法优化支持向量机回归
灰色小旋风7 分钟前
力扣 12 整数转罗马数字 C++
开发语言·c++·leetcode
8Qi88 分钟前
环形链表刷题笔记(LeetCode热题100--141、142)
c语言·数据结构·c++·算法·leetcode·链表
滴滴答滴答答14 分钟前
机考刷题之 13 LeetCode 1004 最大连续1的个数 III
java·算法·leetcode
好的收到11114 分钟前
PyTorch深度学习(小土堆)笔记4: PyTorch 训练不再“开盲盒”,TensorBoard 可视化保姆级教程
pytorch·笔记·深度学习
一叶落43816 分钟前
139. 单词拆分(Word Break)
c语言·数据结构·算法·leetcode·深度优先·图论
Yupureki16 分钟前
《算法竞赛从入门到国奖》算法基础:数据结构-单调队列
c语言·数据结构·c++·算法