Java集合类ArrayList的应用-杨辉三角的前n行
目录
一、题目
杨辉三角
二、题解
三、代码
四、总结
一、题目
题目链接:https://leetcode.cn/problems/pascals-triangle/description/
杨辉三角
题目描述:给定一个非负整数
numRows,生成「杨辉三角」的前numRows行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例一:
输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例二:
输入: numRows = 1
输出: [[1]]
二、题解
1、 在原题目中,一开始给出如下代码:
class Solution {public List<List<Integer>> generate(int numRows) {}}
可知,让补写的方法的返回类型为 List<List<Integer>> ,我们再看到它的时候,可以想到二维数组是如何存放元素的。我们类比于二维数组,List<List<Integer>>的理解可为外层List集合类容器里面的每一个元素仍是List类。
2、根据返回类型,我们首先可以创建出外层:
List<List<Integer>> ret = new ArrayList<>();
//里面的每一个元素都为ArrayList类型
ret里面的每一个元素就是杨辉三角的其中一行,对于杨辉三角的每一行,我们也用ArrayList类来实现,每一行都创建一个ArrayList顺序表。
如图:
杨辉三角的第一行只有一个元素1,所以第一行我们这样实现:
List<Integer> row1 = new ArrayList<>();row1.add(1);ret.add(row1); //将杨辉三角的第一行加入ret
对于第二行至第numRows 行,它们的第一个元素和最后一个元素都是1,而中间元素可以由上一行的两个元素相加,所以如下实现:
for (int i = 1;i < numRows;i++) {List<Integer> curRow = new ArrayList<>();curRow.add(1);List<Integer> prvRow = ret.get(i-1);for (int j = 1;j<i;j++) {curRow.add(prvRow.get(j)+ prvRow.get(j-1));}curRow.add(1);ret.add(curRow);}
三、代码
完整代码如下:
class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> ret = new ArrayList<>();//第一行List<Integer> row1 = new ArrayList<>();row1.add(1);ret.add(row1);for (int i = 1;i < numRows;i++) {List<Integer> curRow = new ArrayList<>();curRow.add(1);List<Integer> prvRow = ret.get(i-1);for (int j = 1;j<i;j++) {curRow.add(prvRow.get(j)+ prvRow.get(j-1));}curRow.add(1);ret.add(curRow);}return ret;}}
四、总结
本文的杨辉三角的解法有多种,像二维数组,在本文我们使用了ArrayList集合类,主要是想通过此题来练习Java集合类的使用。希望此文能帮到你们,感谢阅读!
相关文章:
Java集合类ArrayList的应用-杨辉三角的前n行
目录 一、题目 杨辉三角 二、题解 三、代码 四、总结 一、题目 题目链接:https://leetcode.cn/problems/pascals-triangle/description/ 杨辉三角 题目描述:给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨…...
C语言-函数
函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() 。 主函数可以调用其他函数,其他函数也可以相互调用,用户也可以那个自定义函数。 函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实…...
蓝桥杯 枚举算法 (c++)
枚举就是根据提出的问题,——列出该问题的所有可能的解,并在逐一列出的过程中,检验每个可能解是否是问题的真正解, 如果是就采纳这个解,如果不是就继续判断下一个。 枚举法一般比较直观,容易理解࿰…...
Wordpress自定义小工具logo调用设置(可视化)
在主题开发中,需要调用网站的logo,最简单的办法就是用wp自带的函数,那就是the_custom_logo(),使用它还可以通过后台-自定义-logo,边修改边预览,还是很香的。 自定义徽标支持应首先使用add_theme_support()添…...
面试常考数据结构:红黑树、B树、B+树各自适用的场景
1. 磁盘基础知识 分页: 现代操作系统都使用虚拟内存来印射到物理内存,内存大小有限且价格昂贵,所以数据的持久化是在磁盘上。虚拟内存、物理内存、磁盘都使用页作为内存读取的最小单位。一般一页为4KB(8个扇区,每个扇…...
Paddle GPU版本需要安装CUDA、CUDNN
完整的教程 深度学习环境配置:linuxwindows系统下的显卡驱动、Anaconda、Pytorch&Paddle、cuda&cudnn的安装与说明 - 知乎这篇文档的内容是尽量将深度学习环境配置(使用GPU)所需要的内容做一些说明,由于笔者只在windows和linux下操作过…...
MYSQL length函数
mysql length函数计算结果的单位是啥,和varchar字段类型的单位是相同的吗? 做了一下实验,结果如下: 1.mysql length 函数计算的是有多少个字符,比如字段值是 permission 则length函数计算结果为10。 2.如果字段类型是…...
uniapp 在android手机上运行tab栏页面跳转问题
【问题描述】: 使用uniapp写的项目,在tab页面,无论使用哪种方式的跳转,只要是在url后面拼接参数,在打包成apk文件后,在手机上面安装使用,都是获取不到susIndex参数的,而在浏览器上面…...
css3 hover效果
CSS3中的:hover伪类用于创建鼠标悬停时的样式效果。当用户将鼠标悬停在页面元素上时,你可以为这些元素定义不同的样式规则,以实现交互效果 /* 一般样式规则 */ element {/* 正常状态下的样式 */ }/* 悬停样式规则 */ element:hover {/* 鼠标悬停时的样式…...
C语言char与short取反以及符号判断问题
这个问题主要是在从对一个变量进行符号判断引出,有一种判断方法是#define ISUNSIGNED(Value) (Value >0 && ~Value >0) 主要是通过将符号位取反然后将变量与0进行比较。传入int与unsigned int结果正确,但是当传入unsigned char 与unsign…...
Gpt-4多模态功能强势上线,景联文科技多模态数据采集标注服务等您来体验!
就在上个月,OpenAI 宣布对ChatGPT 进行重大更新,该模型不仅能够通过文字输入进行识别和分析,还能够通过语音、图像甚至视频等多种模态的输入来获取、识别、分析和输出信息。这一重要技术突破,将促进多模态自然语言处理的发展&…...
【idea】 java: 找不到符号
idea 启动时提示 java: 找不到符号 java: 找不到符号 符号: 方法 getCompanyDisputeCount() 位置: 类型为com.yang.entity.AreaAnalyse的变量 areaAnalyse 在setting ——> Compiler ——>Shared build process VM options: 添加: -Djps.track.ap.dep…...
Flink测试利器之DataGen初探 | 京东云技术团队
什么是 Flinksql Flink SQL 是基于 Apache Calcite 的 SQL 解析器和优化器构建的,支持ANSI SQL 标准,允许使用标准的 SQL 语句来处理流式和批处理数据。通过 Flink SQL,可以以声明式的方式描述数据处理逻辑,而无需编写显式的代码…...
linux更换常用软件的默认缓存路径(.conda, .huggingface等)
在使用linux的过程中,我们往往会使用软件安装很多packages,其中的大多数软件(例如conda)会把当前安装的packages缓存起来,以加速之后的相同package的安装。 而很多软件的默认缓存路径是user自己的home路径。下面罗列几…...
Kafka消费者使用案例
本文代码链接:https://download.csdn.net/download/shangjg03/88422633 1.消费者和消费者群组 在 Kafka 中,消费者通常是消费者群组的一部分,多个消费者群组共同读取同一个主题时,彼此之间互不影响。Kafka 之所以要引入消费者群组…...
SpringMVC全注解开发
在学习过程中,框架给我们最大的作用,就是想让开发人员尽可能地只将精力放在具体业务功能的实现之上,而对于各种映射关系的配置,统统由框架来进行完成,由此,注解就很好的将映射功能进行实现,并且…...
解决 android Cannot access ‘<init>‘: it is private in
最近要在2个非直接依赖module使用单例,有一种注入依赖的方式可以,但是报了如下错误: Cannot access <init>: it is private in 经过查阅资料,原来是依赖的单例类的构造函数不能使用private,这里做个记录&#…...
不容易解的题10.15
395.至少有K个重复字符的最长字串 395. 至少有 K 个重复字符的最长子串 - 力扣(LeetCode)https://leetcode.cn/problems/longest-substring-with-at-least-k-repeating-characters/description/?envTypelist&envIdZCa7r67M自认为是不好做的题。尤其…...
Megatron-LM GPT 源码分析(二) Sequence Parallel分析
引用 本文基于开源代码 https://github.com/NVIDIA/Megatron-LM ,延续上一篇Megatron-LM GPT 源码分析(一) Tensor Parallel分析 通过对GPT的模型运行示例,从三个维度 - 模型结构、代码运行、代码逻辑说明 对其源码做深入的分析。…...
DNA序列(DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368) rust解法
输入m个长度均为n的DNA序列,求一个DNA序列,到所有序列的总Hamming距离尽量小。两个等长字符串的Hamming距离等于字符不同的位置个数,例如,ACGT和GCGA的Hamming距离为2(左数第1, 4个字符不同)。 输入整数m和…...
Libero SoC v2021.1离线安装全攻略:从下载到IP核配置(附避坑指南)
Libero SoC v2021.1离线安装全攻略:从下载到IP核配置(附避坑指南) 在企业内网开发环境中,离线安装EDA工具往往面临诸多挑战。本文将手把手指导您完成Libero SoC v2021.1的完整离线部署流程,涵盖从安装包获取到IP核配置…...
小白卖家的“时间困境”:为什么我每天忙得要死,却不出单?
忙碌不是努力,是方法出了问题。入行跨境电商三个月了。从零到日出百单,这条路我算是走通了。但回想起来,最让我后怕的,不是刚开始没单的那段日子,而是中间那段“看起来很忙”的日子。每天从早忙到晚,电脑上…...
IBM Rhapsody 9.0.2 配置与编译问题解决指南
1. IBM Rhapsody 9.0.2环境配置常见问题解析 第一次接触IBM Rhapsody 9.0.2时,我遇到了不少配置上的坑。这个强大的系统建模工具虽然功能全面,但在环境搭建阶段确实需要特别注意几个关键点。最典型的问题就是Visual Studio版本兼容性,这也是大…...
六自由度机械臂的模型预测控制(MPC)探索
六自由度机械臂模型预测控制mpc在机器人领域,六自由度机械臂凭借其高度的灵活性,广泛应用于工业生产、医疗手术、科研探索等众多场景。而要精准操控这样复杂的机械臂,模型预测控制(MPC)无疑是一种强大的策略。 六自由度…...
HarmonyOS6 半年磨一剑 - RcCheckbox 实战下篇:问卷调查表单与参数使用指南
文章目录前言一、场景:问卷调查表单1.1 需求分析1.2 数据结构设计1.3 表单校验联动1.4 第三题:计数器与数量限制的配合1.5 结果页与状态重置1.6 三道题的样式差异化对比1.7 完整代码二、参数使用频率参考2.1 高频参数(必须掌握)2.…...
Audacity音频编辑引擎深度解析:模块化架构设计与高性能音频处理技术
Audacity音频编辑引擎深度解析:模块化架构设计与高性能音频处理技术 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity Audacity作为一款开源跨平台专业音频编辑软件,其最新版本在架构设计和性…...
听说读写画样样精通!美团开源LongCat-Next,给物理世界AI统一了语言
美团刚刚开源了最强原生多模态模型LongCat-Next,将物理世界AI的语言统一了。LongCat-Next模型能听,能说。比如语音问答,或者让它用指定音色说话,能读能写(视觉理解和推理),还能画画和设计&#…...
气象防灾实战:如何用QGIS快速生成暴雨等值面预警图?(含历史数据对比)
气象防灾实战:如何用QGIS快速生成暴雨等值面预警图?(含历史数据对比) 暴雨灾害的预警与防控一直是应急管理和市政规划领域的核心挑战。传统的气象数据分析往往依赖专业软件和复杂代码,让非技术背景的从业者望而却步。本…...
【T6/T3】通过账套备份文件快速识别畅捷通软件版本的实用技巧
1. 为什么需要识别畅捷通软件版本 最近接手了一个老客户的财务系统迁移项目,发现他们提供的账套备份文件没有标注具体版本号。这种情况在实际工作中很常见——企业可能多年未升级系统,或者交接文档不完整。如果直接安装错误版本的畅捷通软件,…...
Django CORS Headers终极配置指南:Vue、React、Angular前端框架完美集成方案
Django CORS Headers终极配置指南:Vue、React、Angular前端框架完美集成方案 【免费下载链接】django-cors-headers Django app for handling the server headers required for Cross-Origin Resource Sharing (CORS) 项目地址: https://gitcode.com/gh_mirrors/d…...
