【跟着英雄学算法第④天】组合数问题——LeetCode 118(C语言实现)

本文详述了如何利用C++实现杨辉三角的算法,包括递推公式和二维数组的操作。博主分享了每日在万人千题社区的学习心得,并鼓励大家一起参与算法打卡,共同进步。同时,对题目118和119进行了实战讲解,帮助读者巩固相关知识。
摘要由CSDN通过智能技术生成

✨前言✨

       在这个系列中,博主准备分享每日在万人千题社区打卡学习的算法。博主也是小白,因此也很能理解新手在刷题时的困惑,所以关注博主,每天学习一道算法吧。同时也欢迎大家加入万人千题习活动,正所谓:一个人可以走的很快,但一群人才能走的更远。万人千题社区https://bbs.csdn.net/forums/hero?category=0


目录

一、问题呈现:

二、上代码操练

三、后记


一、问题呈现:

118.杨辉三角https://leetcode-cn.com/problems/pascals-triangle/submissions/https://leetcode-cn.com/problems/pascals-triangle/submissions/

 题目要求:

二、上代码操练

int** generate(int numRows, int* returnSize, int** returnColumnSizes)
{
    int** ret = ( int** )malloc( sizeof(int*) * numRows );//(1)
    *returnSize = numRows;//(2)
    *returnColumnSizes = (int*)malloc(sizeof(int) * numRows);//(3)

    for (int i = 0; i < numRows; i++)//(4)
    {
        ret[i] = ( int* )malloc( sizeof(int) * (i + 1) );//(5)
        ( *returnColumnSizes )[i] = i + 1;//(6)
        ret[i][0] = 1;
        ret[i][i] = 1;//(7)
        for (int j = 1; j < i; j++)
        {
            ret[i][j] = ret[i - 1][j] + ret[i - 1][j - 1];//(8)
        }

    }
    return ret;
}

分析: 

①创建一个二维数组ret存储杨辉三角每一行每一列的数据

②根据题目要求返回数组的行数,这里是传参操作,所以可以改变外部的returnsize

③根据题目要求为记录行数的二维数组returnColumnSizes开辟空间

④i,j循环遍历杨辉三角

⑤为二维数组的第二维一维数组申请空间,用于具体存储每一行的数据,可以看到类型为int*

⑥为二维数组returnColumnSizes的第二维赋值,记录每一行的行数

⑦排除边界的特殊情况

⑧递推赋值

 这里的重难点为二维数组的使用,这里为大家图解,相信看必会。returnColumnSizes同理

 三、后记

        作者之前一直在牛客网刷刷简单题目划划水,但决心更英雄哥刷算法肯定是不小的挑战,但是大家都在坚持打卡,怎么能放弃呢,虽然开始一直失败,但总会通过的。加油大家,算法刷起来,我们互相学习

学完了今天的内容,我们来做一道简单点的题目实践一下吧

119. 杨辉三角 IIhttps://leetcode-cn.com/problems/pascals-triangle-ii/https://leetcode-cn.com/problems/pascals-triangle-ii/

  • 18
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罅隙`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值