IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【跟着英雄学算法第④天】组合数问题——LeetCode 118(C语言实现) -> 正文阅读

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

?前言?

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

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 13:04:40  更:2021-10-27 13:04:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:52:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码