LeetCode:杨辉三角

1、问题概述:给一个非负整数,生成杨辉三角的前n行

2、示例:

示例1

输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例2

输入: numRows = 1
输出: [[1]]

3、分析

(1)每行的第一个和最后一个都是以1为结尾

(2)剩下的情况是 紧挨着上一行的 左元素 和 右元素 进行相加 :

num[i][j] = num[i-1][j-1] + num[i-1][j]

4、代码:

cpp 复制代码
/**
    返回一个*returnSize大小的数组
    数组的大小以*returnColumnSizes的形式返回
    返回的数组和*columnSizes数组必须是malloced
*/ 
int** generate(int numRows, int* returnSize, int** returnColumnSizes) {
    // 定义存放指针的空间
    int **res=malloc(sizeof(int *)*numRows);

    // 返回多少行数
    *returnSize=numRows;

    // 开辟每一列的空间
    *returnColumnSizes=malloc(sizeof(int *)*numRows);

    for(int i=0;i<numRows;i++){
        // 从第0个元素进行赋值
        (*returnColumnSizes)[i]=i+1;
        
        // 分配二维数组的列数
        res[i]=(int *)malloc(sizeof(int)*(i+1));

        for(int j=0;j<=i;j++){
            if(j==0 || j==i){
                res[i][j]=1;
            }else{
                res[i][j]=res[i-1][j-1] + res[i-1][j];
            }
        }
    }
    return res;
}
相关推荐
CoovallyAIHub几秒前
2.5GB 塞进浏览器:Mistral 开源实时语音识别,延迟不到半秒
深度学习·算法·计算机视觉
会编程的土豆7 分钟前
C++中的 lower_bound 和 upper_bound:一篇讲清楚
java·数据结构·算法
NAGNIP7 分钟前
一文搞懂深度学习中的损失函数设计!
人工智能·算法
阿里嘎多哈基米8 分钟前
速通Hot100-Day09——二叉树
算法·leetcode·二叉树·hot100
Frostnova丶11 分钟前
LeetCode 48 & 1886.矩阵旋转与判断
算法·leetcode·矩阵
多打代码11 分钟前
2026.3.22 回文子串
算法·leetcode·职场和发展
m0_6625779714 分钟前
嵌入式C++安全编码
开发语言·c++·算法
2301_8101609517 分钟前
代码生成器优化策略
开发语言·c++·算法
HUTAC23 分钟前
关于进制转换及其应用的算法题总结
数据结构·c++·算法
im_AMBER26 分钟前
Leetcode 144 位1的个数 | 只出现一次的数字
学习·算法·leetcode