数据结构习题--杨辉三角形(返回某一行)

devtools/2024/11/14 21:53:51/

数据结构习题–杨辉三角形(返回某一行)

输入需要第几行,返回杨辉三角形中的这一行
注意:这里的行数是从0开始

方法:递推(复杂度行数的平方)

分析:

当处于每行的第一个和最后一个时,添加的数为1
除此之外,每个数等于上一行的左边一个数(该数的索引减1)与右边一个数(该数的索引)之和

代码(方法一)

public List<Integer> getRow(int rowIndex) {List<List<Integer>> triangle = new ArrayList<>();for (int i = 0; i < rowIndex + 1; i++) {List<Integer> array = new ArrayList<>();for (int j = 0; j < i + 1; j++) {if (j == 0 || j == i){array.add(1);}else {array.add(triangle.get(i - 1).get(j - 1) + triangle.get(i - 1).get(j));}}triangle.add(array);}return triangle.get(rowIndex);}

代码(滚动数组优化)

class Solution {public List<Integer> getRow(int rowIndex) {List<Integer> list = new ArrayList<>();for(int i = 0; i <= rowIndex; i++){list.add(1);// 每次增加1for(int j = i-1; j>0; j--){// 逆序往前增加list.set(j,list.get(j-1)+list.get(j));}}return list;}
}

方法:线性递推

分析:

在这里插入图片描述

代码

class Solution {public List<Integer> getRow(int rowIndex) {List<Integer> row = new ArrayList<Integer>();row.add(1);for (int i = 1; i <= rowIndex; ++i) {row.add((int) ((long) row.get(i - 1) * (rowIndex - i + 1) / i));}return row;}
}

http://www.ppmy.cn/devtools/6590.html

相关文章

MacOS 文件句柄数不够 Error: EMFILE: too many open files

MacOS 文件句柄数不够 Error: EMFILE: too many open files 直奔主题-解决方案 启动项目发现报错&#xff1a;Error: EMFILE: too many open files&#xff1b;经排查是因为单个微应用项目较大&#xff0c;发布过程中已经超过了mac默认的文件监听上限对文件系统进行大量并发调用…

Tomcat命令行窗口、IDEA中Tomcat控制台 中文乱码问题解决方案

Tomcat出现中文乱码问题 打开Tomcat文件夹下的conf/logging.properties文件&#xff0c;将下图位置中的编码由UTF-8全部替换成GBK 然后重启Tomcat服务器&#xff0c;问题解决 Intellij IDEA启动Tomcat服务器控制台出现中文乱码 解决方案非常简单&#xff0c;按照下图设置控制…

代码随想录系统性一刷总结

代码随想录系统性一刷总结 数组 指针思想很重要 day01 二分查找移除元素 day02 数组平方长度最小子数组螺旋矩阵II 链表 链表结点的增删改查&#xff0c;头结点的运用&#xff0c;灵活运用指针 day03 移除链表元素设计链表翻转链表 day04 交换结点删除结点链表相交环形列表 …

uni-app学习记录

uni-app 基础 uni-app环境搭建 命令行搭建 基础使用差异说明 要使用滚动 <scroll-view scroll-y"true" class"h-600">类似于v-html <rich-text nodes"<h1>1123213</h1>" /> <editor /> - text-area生命周期…

【JavaWeb】Day47.Mybatis基础操作——删除

Mybatis基础操作 需求 准备数据库表 emp 创建一个新的springboot工程&#xff0c;选择引入对应的起步依赖&#xff08;mybatis、mysql驱动、lombok&#xff09; application.properties中引入数据库连接信息 创建对应的实体类 Emp&#xff08;实体类属性采用驼峰命名&#xf…

Python数据可视化库—Bokeh与Altair指南

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在数据科学和数据分析领域&#xff0c;数据可视化是一种强大的工具&#xff0c;可以帮助我们…

​面试经典150题——翻转二叉树

1. 题目描述 2. 题目分析与解析 分析题目可以看出&#xff0c;其实就是从下到上的左右节点互换操作&#xff0c;其实上也是可以进行递归操作的&#xff0c;这是因为每一个子操作和父操作都是一样的方式。 解题思路&#xff1a; 空树情况处理&#xff1a; 首先检查根节点是否…

聊聊linux的文件缓存

序 本文主要研究一下linux的文件缓存 文件缓存 linux使用page cache来缓存最近读取的文件&#xff0c;也有目录结构(dcache: Directory Entry Cache)缓存及inode缓存&#xff0c;它们都使用了LRU算法来管理这些page及dentries cache vmstat ## vmstat procs -----------me…