LeetCode:118.杨辉三角

118. 杨辉三角 - 力扣(LeetCode),

前言:平平无奇的实现,数组理清了的话就很easy,值得说的是给定的参数

int* returnSize, int** returnColumnSizes

是什么意思,还得熟悉适应,博主还是看官解的代码和参数名字和提示来理解,

博主的理解是returnSize是外部定义的存放我们要创建的杨辉三角的int整型指针数组的大小的变量,传递进来的是地址,所以是int* ;

returnColumnSizes,如其名,返回的列的大小,具体其实是每一行杨辉三角的列数(每一行有几个数)看作外部定义了一个int* 的指针,把地址传递了进来,所以是int** 我们要malloc一个数组,存放每一行的个数,

目录

题目:

思路:

代码+注释:

每日表情包:


题目:

思路:

没啥值得思考的,就像题目动画的演示一样,把二维数组的上一行的那两个数加起来就好,考验的是数组的基本,由于遍历二维数组,所以易知时O(n^2);

代码+注释:

/**
 * Return an array of arrays of size *returnSize.
 * The sizes of the arrays are returned as *returnColumnSizes array.
 * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
 */
int* BuyMalloc(int i)
{
    int* tmp = (int*)malloc(sizeof(int)* i);
    assert(tmp);
    return tmp;
}
int** generate(int numRows, int* returnSize, int** returnColumnSizes) {
    int** r = (int**)malloc(sizeof(int*) * numRows);
    *returnSize = numRows;
    *returnColumnSizes = (int*)malloc(sizeof(int) * numRows);
    for(int i = 1; i <= numRows; ++i){//i为第i行
        r[i - 1] = BuyMalloc(i);
        for(int j = 0; j < i; ++j){
            if(j == 0 || j == i - 1){//确立边界(特殊)
                r[i - 1][j] = 1;
            }
            else{//(一般情况)
                r[i - 1][j] = r[i - 2][j - 1] + r[i - 2][j];
            }
        }
        (*returnColumnSizes)[i - 1] = i;
    }
    return r;
}

每日表情包:

点点赞可怜可怜孩子吧!,嘤嘤嘤! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/387838.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入了解pip和conda:高效Python环境管理的必备指南

pip相关命令: 更新包之前最好更新一下pip&#xff0c;因为更新其他包底层是依赖 pip pip show pippython -m pip install --upgrade pippython更新包&#xff1a; - ​ pip install --upgrade 包 pip install pandas- ​ pip install --upgrade 包名称版本号查看那些包需要更…

【leetcode热题100】交错字符串

给定三个字符串 s1、s2、s3&#xff0c;请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下&#xff0c;其中每个字符串都会被分割成若干 非空 子字符串&#xff1a; s s1 s2 ... snt t1 t2 ... tm|n - m| < 1交错 是 s1 …

CAN通讯协议学习

介绍 它是一种异步通讯&#xff0c;can_high和can_low两条线利用的是电位差传输信号&#xff0c;抗干扰能力强&#xff0c;但是必须要有can控制器如TJA1050&#xff08;我的开发板&#xff09; 当 CAN 节点需要发送数据时&#xff0c;控制器把要发送的二进制编码通过 CAN_Tx 线…

牛客JZ 36二叉搜索树与双向链表

描述 输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的双向链表。如下图所示 数据范围&#xff1a;输入二叉树的节点数 0≤n≤10000≤n≤1000&#xff0c;二叉树中每个节点的值 0≤val≤10000≤val≤1000 要求&#xff1a;空间复杂度O(1)&#xff08;即在原树上…

计算机毕业设计分享-SSM实验室耗材管理系统 13205(赠送源码数据库)JAVA、PHP,node.js,C++、python,大屏数据可视化等

SSM实验室耗材管理系统 摘 要 本课题研究的实验室耗材管理系统&#xff0c;主要功能模块包括用户管理、耗材管理、入库记录、出库记录、报废登记、供应商管理、耗材类别、实验室管理等&#xff0c;采取面对对象的开发模式进行软件的开发和硬体的架设&#xff0c;能很好的满足实…

CSS设置盒子阴影

语法 box-shadow: *h-shadow v-shadow blur spread color* inset; 注释: box-shadow向框添加一个或多个阴影. 该属性是由逗号分隔的阴影列表,每个阴影由2-4个长度值、可选的颜色值及可选的inset关键词来规定。省略长度的值是0。 外阴影 a、给元素右边框和下边框加外阴影——把…

Git基础使用

Git 要想了解Git&#xff0c;首先需要我们了解一下VCS——版本控制系统&#xff08;version control system&#xff09; VCS 版本控制是一种记录一个或若干文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件&a…

【机器学习案例3】从科学论文图片中提取标题、作者和摘要【含源码】

在这个项目中,我的目标是从科学论文图片中提取某些部分(标题、作者和摘要)。预期提取部分是科学论文中常见的部分,例如标题、摘要和作者。输入与最终结果。我的输入是将第一页纸转换成图像。最终结果是一个 txt 文件,其中包含标题、作者和摘要部分,如下图1和图2所示。我将…

《区块链公链数据分析简易速速上手小册》第9章:区块链数据工具和资源(2024 最新版)

文章目录 9.1 数据获取工具9.1.1 基础知识9.1.2 重点案例&#xff1a;使用web3.py获取以太坊交易数据准备工作实现步骤步骤1: 连接到以太坊网络步骤2: 获取特定地址的交易数据 扩展应用结语 9.1.3 拓展案例 1&#xff1a;使用 Etherscan API 获取交易数据准备工作实现步骤步骤1…

【AI视野·今日CV 计算机视觉论文速览 第295期】Tue, 23 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Tue, 23 Jan 2024 Totally 134 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Exploring Simple Open-Vocabulary Semantic Segmentation Authors Zihang Lai开放词汇语义分割模型旨在从一组任意开放词…

专业140+总分420+东北大学841通信专业基础考研经验东大电子信息与通信工程,真题,大纲,参考书。

今年考研顺利上岸&#xff0c;被东北大学通信工程录取&#xff0c;其中专业课841通信专业基础140&#xff0c;数二140&#xff0c;总分420&#xff0c;整体每门课都还是比较均衡&#xff0c;刚开始考研前也和大家一样&#xff0c;焦虑&#xff0c;紧张&#xff0c;面对考研怕失…

本地存储云存储使用量对比

目录 块存储 文件存储 对象存储 使用传统式存储&#xff0c;需要购买新的存储系统、存储容量&#xff0c;还需要为未来的发展预留一部分容量&#xff0c;同时未来如果业务量规模扩大&#xff0c;还可能需要在数据中心托管并维护总容量&#xff0c;这都将大大增加成本。 使用…

【Linux笔记】进程间通信之管道

一、匿名管道 我们在之前学习进程的时候就知道了一个概念&#xff0c;就是进程间是互相独立的&#xff0c;所以就算是两个进程是父子关系&#xff0c;其中一个进程退出了也不会影响另一个进程。 也因为进程间是互相独立的&#xff0c;所以两个进程间就不能直接的传递信息或者…

算法沉淀——栈(leetcode真题剖析)

算法沉淀——栈 01.删除字符串中的所有相邻重复项02.比较含退格的字符串03.基本计算器 II04.字符串解码05.验证栈序列 栈&#xff08;Stack&#xff09;是一种基于先进后出&#xff08;Last In, First Out&#xff0c;LIFO&#xff09;原则的数据结构。栈具有两个主要的操作&am…

PgSQL内核特性 - push-based pipeline 执行引擎

PgSQL内核特性 - push-based pipeline 执行引擎 数据库的SQL执行引擎负责处理和执行SQL请求。通常情况下&#xff0c;查询优化器会输出物理执行计划&#xff0c;一般由一系列的算子组成。当前&#xff0c;有两种算子流水线构建方式&#xff1a;1&#xff09;需求驱动的流水线&a…

安卓价值2-Macrodroid在其它app下执行两步就停

Macrodroid 是一款适用于 Android 平台的自动化应用程序。它允许用户创建个性化的自动化工作流程,以简化日常任务并增强手机的功能。 但使用下来会发现一些奇怪的问题,比如在其它app处于前台状态下它执行了两步任务就停止了,但切换回macrodroid就又继续执行了,这就像是程序…

【网络攻防实验】【北京航空航天大学】【实验四、防火墙配置(Firewall Configuration)实验】

实验四、防火墙配置(Firewall Configuration)实验 一、 实验环境搭建 1. Kali Linux网络配置 将Kali Linux虚拟机网卡1设置为NAT网络模式,ip地址为10.0.2.5,如下图所示: 配置NAT网络端口转发: 将Kali Linux网卡2设置为内部网络模式: 配置Kali Linux网卡1: 类似地,配…

软件实例分享,门诊处方软件存储模板处方笺教程,个体诊所电子处方开单系统软件教程

软件实例分享&#xff0c;门诊处方软件存储模板处方笺教程&#xff0c;个体诊所电子处方开单系统软件教程、 一、前言 以下软件教程以 佳易王诊所电子处方管理软件V17.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 电子处方软件支持病历汇总…

红队笔记Day3-->隧道上线不出网机器

昨天讲了通过代理的形式&#xff08;端口转发&#xff09;实现了上线不出网的机器&#xff0c;那么今天就来讲一下如何通过隧道上线不出网机器 目录 1.网络拓扑 2.开始做隧道&#xff1f;No&#xff01;&#xff01;&#xff01; 3.icmp隧道 4.HTTP隧道 5.SSH隧道 1.什么…

库函数strlen的实现

目录 一、原理二、思路三、实现 一、原理 库函数strlen的功能是求字符串长度&#xff0c;统计的是字符串中 \0 之前的字符的个数。 函数原型如下&#xff1a; size_t strlen ( const char * str );二、思路 参数str接收⼀个字符串的起始地址&#xff0c;然后开始统计字符串中…