leetcode刷题日记:118.Pascal‘s Triangle(杨辉三角)

118.Pascal’s Triangle(杨辉三角)

题目给我们一个整数numRows表示杨辉三角形的行数,返回杨辉三角形的前numRows行,下面给出一个杨辉三角形看看它有哪些规律;
在这里插入图片描述
在这里插入图片描述
可以看出杨辉三角形的每一行的最左侧和最右侧的值都为1.
在这里插入图片描述
其余的第i行的第j个元素p[i][j]可以由下图确定:
在这里插入图片描述
可以看出p[i][j] = p[i-1][j]+p[i-1][j-1],有了上述的思路我们可以写出代码如下:

int** generate(int numRows, int* returnSize, int** returnColumnSizes) {
    int **p = (int **)malloc(sizeof(int **)*numRows);
    p[0] = (int *)malloc(sizeof(int*));
    p[0][0] = 1;
    *returnSize = numRows;
    *returnColumnSizes = (int *)malloc(sizeof(int)*numRows);
    (*returnColumnSizes)[0] = 1;
    for(int i=1; i<numRows;i++){
        (*returnColumnSizes)[i] = i+1;
        p[i] = (int *)malloc(sizeof(int)*(i+1));
        for(int j=0;j<=i;j++){
            if(j-1<0){
                p[i][j] = p[i-1][j]+0;
            }else if(j>i-1){
                p[i][j] = p[i-1][j-1]+0;
            }else{
                p[i][j] = p[i-1][j-1]+p[i-1][j];
            }
            
        }
    }
    return p;
}

运行结果截图:
在这里插入图片描述

119.Pascal’s Triangle II( 杨辉三角 II)

这道题要求返回杨辉三角形的第rowIndex行的值,杨辉三角形从第0行开始。有了上述的生成杨辉三角形的代码,我们只需要将杨辉三角的第i行的所有元素复制到x中,然后返回x即可,整体思路不变。

int* getRow(int rowIndex, int* returnSize) {
    int **p = (int **)malloc(sizeof(int **)*(rowIndex+1));
    int *x = (int *)malloc(sizeof(int)*(rowIndex+1));
    p[0] = (int *)malloc(sizeof(int));
    p[0][0] = 1;
    *returnSize = rowIndex+1;
    for(int i=1; i<=rowIndex;i++){
        p[i] = (int *)malloc(sizeof(int)*(i+1));
        for(int j=0;j<=i;j++){
            if(j-1<0){
                p[i][j] = p[i-1][j]+0;
            }else if(j>i-1){
                p[i][j] = p[i-1][j-1]+0;
            }else{
                p[i][j] = p[i-1][j-1]+p[i-1][j];
            }
            
        }
    }
    
    for(int i=0;i<rowIndex+1;i++){
        x[i] = p[rowIndex][i];
    }
    return x;
}

运行结果截图:
在这里插入图片描述
这一道题也可以采用我在杨辉三角这篇文章中的思路,因为根据二项式定理,可以求出杨辉三角形每一行的值。

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

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

相关文章

时钟丢失监控机制

文章目录 前言一、分析芯片手册1、6.2.4 Clock monitoring2、28.1.5 System clock and clock monitor requirement3、分析寄存器1) SCG_SOSCCSR[SOSCCM]2) SCG_SOSCCSR[SOSCCMRE] 二、EB配置1、检查复位源2、配置时钟监控 三、结果验证总结 前言 本文章主要基于恩智浦 S32K14x…

Verilog基础:三段式状态机与输出寄存

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html 对于Verilog HDL而言&#xff0c;有限状态机(FSM)是一种重要而强大的模块&#xff0c;常见的有限状态机书写方式可以分为一段式&#xff0c;二段式和三段式&#xff0c;笔者强烈建议使用三…

【Redis】Hash哈希类型

上一篇&#xff1a; set集合 https://blog.csdn.net/m0_67930426/article/details/134366814?spm1001.2014.3001.5502 目录 Hset Hget Hlen Hkeys Hvals Hincrby Hdecrby Hsetex Hsetnx 官网&#xff1a; https://redis.io/commands/?grouphash Hset 创建哈希集…

【Docker】深入理解Docker:一种革新性的容器技术

前言 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 &#x1f4d5;作者简介&#xff1a;热…

游戏本地化翻译,如何确保翻译质量?

游戏本地化翻译是一项颇为复杂的任务&#xff0c;涉及的细节和要求颇多&#xff0c;尤其是需要符合行业特定的规范&#xff0c;才能提升游戏翻译的专业水准。那么&#xff0c;如何确保游戏本地化翻译的品质呢&#xff1f; 业内人士普遍认为&#xff0c;要达到专业水准&#xff…

接口测试面试题整理​​​​​​​

HTTP, HTTPS协议 什么是DNS HTTP协议 怎么抓取HTTPS协议 说出请求接口中常见的返回状态码 http协议请求方式 HTTP和HTTPS协议区别 HTTP和HTTPS实现机有什么不同 POST和GET的区别 HTTP请求报文与响应报文格式 什么是Http协议无状态协议?怎么解决HTTP协议无状态协议 常见的POST提…

论文导读 | 融合大规模语言模型与知识图谱的推理方法

前 言 大规模语言模型在多种自然语言处理相关任务上展现了惊人的能力&#xff0c;如智能问答等&#xff0c;但是其推理能力尚未充分展现。本文首先介绍大模型进行推理的经典方法&#xff0c;然后进一步介绍知识图谱与大模型融合共同进行推理的工作。 文章一&#xff1a;使用思维…

Mysql Explain工具介绍

使用EXPLAIN关键字可以模拟优化器执行SQL语句&#xff0c;分析查询语句或是结构的性能瓶颈。 准备表 -- 课程表 CREATE TABLE class (id int(11) NOT NULL,name varchar(45) DEFAULT NULL,update_time datetime DEFAULT NULL,PRIMARY KEY (id)) ENGINEInnoDB DEFAULT CHARSET…

linux创建用户并设置sudo权限,主机将相互免密

1.创建用户组 2.创建用户 3.登陆主机查看用户情况 3.1查看create_user.yaml内容 3.2字段说明&#xff1a; Ansible的user模块提供了一系列参数&#xff0c;使你能够定义用户账户的各种属性&#xff0c;例如用户名、密码、主目录、用户组等。下面是一些常用的参数&#xff1a; …

dolphinscheduler

架构说明 MasterServer MasterServer采用分布式无中心设计理念&#xff0c;MasterServer主要负责 DAG 任务切分、任务提交监控&#xff0c;并同时监听其它MasterServer和WorkerServer的健康状态。 MasterServer服务启动时向Zookeeper注册临时节点&#xff0c;通过监听Zookeep…

数据结构-链表的简单操作代码实现2【Java版】

目录 写在前&#xff1a; 此篇讲解关于单链表的一些面试题目&#xff0c;续上节。 11.反转一个单链表 12.给定一个带有头结点的head的非空单链表&#xff0c;返回链表的中间结点&#xff0c;如果有两个中间结点&#xff0c;则返回第二个中间结点 13.输入一个链表&#xff0c…

什么是流程图,流程图怎么画?实名推荐这3个好用的在线流程图软件!

流程图是表达工作流程或者系统操作过程的有效工具&#xff0c;被广泛应用于各个行业和领域。他们以视觉的形式将复杂的流程简化&#xff0c;便于理解、交流和优化。不论是计划新项目、审计工作流程&#xff0c;还是改进现有操作&#xff0c;流程图都是一个不可或缺的工具。 什…

Mysql-表的结构操作

1.创建表 CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎 ; 说明&#xff1a; field 表示列名 datatype 表示列的类型 character set 字符集&#xff0c;如果没有指定字…

人工智能与多平台自动引流应用的结合

人工智能的技术在多平台自动引流方面的应用非常广泛&#xff0c;下面举例说明&#xff1a; 智能推荐算法&#xff1a;人工智能的推荐算法能够根据用户的兴趣和行为数据&#xff0c;自动向其推荐相关的内容和产品&#xff0c;从而引导用户访问和购买。这种多平台自动引流的方式可…

UITableView的style是UITableViewStyleGrouped

一般情况下&#xff0c;UITableViewStylePlain和UITableViewStyleGrouped是UITableView常用到的style&#xff0c; 之前都是用到的时候&#xff0c;遇到问题直接用度娘&#xff0c;差不多就够用了&#xff0c;今天在修复UI提出的间隙问题&#xff0c;来回改&#xff0c;总觉得…

Clickhouse 学习笔记(7)—— 查看执行计划

在 clickhouse 20.6 版本之前要查看 SQL 语句的执行计划需要设置日志级别为 trace 才能 可以看到&#xff0c;并且只能真正执行 sql&#xff0c;在执行日志里面查看 在20.6版本之后可以通过explain语句查看执行计划 基本语法 EXPLAIN [AST | SYNTAX | PLAN | PIPELINE] [se…

OpenAtom OpenHarmony三方库创建发布及安全隐私检测

OpenAtom OpenHarmony三方库&#xff08;以下简称“三方库”或“包”&#xff09;&#xff0c;是经过验证可在OpenHarmony系统上可重复使用的软件组件&#xff0c;可帮助开发者快速开发OpenHarmony应用。三方库根据其开发语言分为2种&#xff0c;一种是使用JavaScript和TypeScr…

phono3py快速安装教程

phono3py是类似于Phonopy的另一款基于第一性原理计算获得材料声学性质并可后处理的功能强大的软件&#xff0c;在以往推送内容中也有介绍基于phono3py 计算晶格热导率VASPphono3py:快速计算晶格热导率 和声子寿命理论到实践&#xff1a;VASPPhono3py计算Phonon Lifetime 以及…

速锐得HJ1239车载终端TBOX柴油商用车远程排放管理工况模型应用

其实排放模型&#xff0c;并不是生涩难懂的问题&#xff0c;首先我们准备好一台TBOX&#xff0c;比如无论是海康、华为、速锐得、博世、联电、LG、西门子都可以做到&#xff0c;在满足TBOX具备4G物联网2路CAN支持远程升级控车&#xff0c;支持国四国五国六车型&#xff0c;带定…

Python实现猎人猎物优化算法(HPO)优化XGBoost分类模型(XGBClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…
最新文章