当前位置: 首页 > news >正文

Leetcode:118. 杨辉三角——Java数学法求解

题目——Leetcode:118. 杨辉三角

给定一个非负整数 numRows生成「杨辉三角」的前 numRows 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例 1:

输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:

输入: numRows = 1
输出: [[1]]

 

题目分析:

把杨辉三角的每一排左对齐,通过观察我们可以发现:

  • 每一排的第一个数和最后一个数都是 1,即 nums[i][0]=nums[i][i]=1。
  • 其余数字,等于左上方的数,加上正上方的数,即 nums[i][j]=nums[i−1][j−1]+nums[i−1][j]。例如 4=1+3, 6=3+3 等。递推式如下:

图解如下:

 

解法:数学法 

new ArrayList<List<Integer>>();:这里是创建一个ArrayList的实例,但有一个重要的点需要注意。ArrayList的构造函数接受一个int类型的参数,这个参数指定了列表的初始容量(initial capacity),而不是列表的大小(size)。

public class Solution {// 方法用于生成杨辉三角public List<List<Integer>> generate(int numRows) {// 创建一个列表来存储杨辉三角的每一行List<List<Integer>> nums = new ArrayList<List<Integer>>();// 遍历每一行for (int i = 0; i < numRows; ++i) {// 为当前行创建一个新的ArrayListList<Integer> row = new ArrayList<Integer>();// 遍历当前行的每一个元素for (int j = 0; j <= i; ++j) {// 如果是当前行的第一个元素或最后一个元素,则值为1if (j == 0 || j == i) {row.add(1);} else {// 否则,值为上一行相邻两个元素之和// nums.get(i - 1) 获取上一行// .get(j - 1) 获取上一行第j-1个元素// .get(j) 获取上一行第j个元素row.add(nums.get(i - 1).get(j - 1) + nums.get(i - 1).get(j));}}// 将当前行添加到nums列表中nums.add(row);}// 返回生成的杨辉三角return nums;}
}

复杂度分析

  • 时间复杂度:O(numRows2)。

  • 空间复杂度:O(1)。不考虑返回值的空间占用。

相关文章:

Leetcode:118. 杨辉三角——Java数学法求解

题目——Leetcode:118. 杨辉三角 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRow…...

SHELL脚本(Linux)

声明 学习视频来自 B 站UP主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 ✍&#x1f3fb;作者简介&#xff1a;致…...

单元测试、集成测试、系统测试、验收测试、压力测试、性能测试、安全性测试、兼容性测试、回归测试(超详细的分类介绍及教学)

目录 1.单元测试 实现单元测试的方法&#xff1a; 注意事项&#xff1a; 2.集成测试 需注意事项&#xff1a; 实现集成测试的方法&#xff1a; 如何实现高效且可靠的集成测试&#xff1a; 3.系统测试 实现系统测试的方法: 须知注意事项&#xff1a; 4.验收测试 实现验…...

低代码集成多方API的简单实现

在现代软件开发中&#xff0c;集成多个API服务提供商已成为常见需求。然而&#xff0c;不同的API认证机制和数据格式使得集成过程变得复杂且耗时。为了应对这些挑战&#xff0c;本文将介绍一种低代码解决方案&#xff0c;通过配置化管理和简化的代码逻辑&#xff0c;帮助开发者…...

【测试框架篇】单元测试框架pytest(1):环境安装和配置

一、pytest简介 Pytest是Python的一种单元测试框架&#xff0c;与Python自带的unittest测试框架类似&#xff0c;但是比 unittest框架使用起来更简洁&#xff0c;效率更高。 二、pytest特点 Pytest是一个非常成熟的Python测试框架,主要特点有以下几点&#xff1a; 非常容易…...

Python数据分析NumPy和pandas(二十九、其他Python可视化工具)

与其他开源工具一样&#xff0c;在 Python 中创建图形有很多选项&#xff08;太多了&#xff0c;无法一一列举&#xff09;。自 2010 年以来&#xff0c;主要开发工作集中在创建用于在 Web 上发布交互式图形上。例如&#xff1a; Altair、Bokeh 和 Plotly 等工具&#xff0c;可…...

Unity中HDRP设置抗锯齿

一、以前抗锯齿的设置方式 【Edit】——>【Project Settings】——>【Quality】——>【Anti-aliasing】 二、HDRP项目中抗锯齿的设置方式 在Hierarchy中——>找到Camera对象——>在Inspector面板上——>【Camera组件】——>【Rendering】——>【Pos…...

Spring Boot实现文件上传与OSS集成:从基础到应用

目录 前言1. 文件上传的基础实现1.1 前端文件上传请求1.2 后端文件接收与保存 2. 集成第三方OSS服务2.1 准备工作2.2 编写OSS集成代码2.3 修改Controller实现文件上传至OSS 3. 文件上传的扩展&#xff1a;多文件上传与权限控制结语 前言 随着互联网应用的快速发展&#xff0c;…...

Python学习26天

集合 # 定义集合 num {1, 2, 3, 4, 5} print(f"num&#xff1a;{num}\nnum数据类型为&#xff1a;{type(num)}") # 求集合中元素个数 print(f"num中元素个数为&#xff1a;{len(num)}") # 增加集合中的元素 num.add(6) print(num) # {1,2,3,4,5,6} # 删除…...

linux startup.sh shutdown.sh (kkFileView)

linux启动脚本和关闭脚本startup.sh shutdown.sh &#xff08;kkFileView&#xff09; startup.sh DIR_HOME("/opt/openoffice.org3" "/opt/libreoffice" "/opt/libreoffice6.1" "/opt/libreoffice7.0" "/opt/libreoffice7.1&q…...

[MySQL]隐式类型转换

安全等号 <> 如果有参数为NULL&#xff0c;则除了相等比较运算符()&#xff0c;比较的结果为null。对于 nullnull&#xff0c;结果为true。 在select语句中&#xff0c;使用 时&#xff0c;结果不会包含值为 null 的记录&#xff0c;但如果使用安全等号 <> 来…...

面经总结1

文章目录 如何保证批量请求失败&#xff0c;只弹出一个toast1使用计数器&#xff1a;2使用标志变量&#xff1a; 如何减少项目里的if-else1使用多态2使用策略模式3使用字典映射4使用状态模式 babel-runtime 作用是啥如何实现 PDF 预览和下载1浏览器内置PDF阅读器2使用PDF.js库3…...

Oracle19C AWR报告分析之Instance Efficiency Percentages (Target 100%)

Oracle19C AWR报告分析之Instance Efficiency Percentages 一、分析数据二、详细分析2.1 Instance Efficiency Percentages (Target 100%)各项指标及其解释2.2 分析和总结 一、分析数据 二、详细分析 在 Oracle AWR (Automatic Workload Repository) 报告中&#xff0c;每个性能…...

数据结构--数组

一.线性和非线性 线性&#xff1a;除首尾外只有一个唯一的前驱和后继。eg&#xff1a;数组&#xff0c;链表等。 非线性&#xff1a;不是线性的就是非线性。 二.数组是什么&#xff1f; 数组是一个固定长度的存储相同数据类型的数据结构&#xff0c;数组中的元素被存储在一…...

nrm的安装及使用

nrm的安装及使用 NRM&#xff08;NPM Registry Manager&#xff09;是一个用于快速切换npm&#xff08;Node Package Manager&#xff09;源的工具。npm是Node.js的包管理工具&#xff0c;用于安装、发布、管理Node.js包。由于网络原因&#xff0c;直接使用npm官方源&#xff…...

【MatLab手记】 --从0到了解超超超详过程!!!

文章目录 MatLab笔记一、命令行窗口二、变量命名规则三、数据类型1. 数字2. 字符与字符串3. 矩阵3.1 矩阵创建3.2 矩阵的修改和删除3.3 矩阵的拼接与重构重排3.4 矩阵的运算方法3.5 矩阵的下标 4. 元胞数组&#xff08;类似数据容器&#xff09;5. 结构体 四、逻辑与流程控制五…...

从零创建vue+elementui+sass+three.js项目

初始化&#xff1a; vue init webpack projectnamecd projectnamenpm install支持sass: npm install sass --save-dev npm install sass-loader7.1.0 --save-dev npm install node-sass4.12.0 --save-devbuild/webpack.base.conf.js添加 rules: [...,{test: /\.scss$/,loade…...

Linux通过使用scp和sftp发送或拉取文件

在通过 telnet 登录到远程服务器之后&#xff0c;你无法直接使用 telnet 发送文件。telnet 是一个纯文本协议&#xff0c;不支持文件传输。要发送文件&#xff0c;你需要使用其他工具&#xff0c;如 scp 或 sftp。以下是使用这两种工具发送文件的方法&#xff1a; 使用 scp 发…...

Jtti:服务器总是自动重启怎么办?

服务器总是自动重启可能是由于多种原因引起的&#xff0c;包括硬件故障、软件问题、配置错误或环境因素。以下是一些常见原因和相应的解决方案&#xff1a; 1. 硬件问题 电源故障&#xff1a;电源供应不稳定或电源模块故障可能导致服务器重启。 解决方案&#xff1a;检查电源供…...

北京大学c++程序设计听课笔记101

基本概念 程序运行期间&#xff0c;每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址&#xff08;也称“入口地址”&#xff09;。我们可以将函数的入口地址赋给一个指针变量&#xff0c;使该指针变量指向该函数。然后通过指针变量就可以调用这个…...

CentOS 7下VNC连接Sentaurus TCAD服务器,从安装到排错的保姆级避坑指南

CentOS 7下高效连接Sentaurus TCAD的工程实践指南 在半导体设计与仿真领域&#xff0c;Sentaurus TCAD作为行业标准工具链&#xff0c;其服务器环境的稳定访问是研发效率的关键保障。对于刚接触Linux服务器环境的工程师或研究人员而言&#xff0c;如何通过VNC实现图形化界面的远…...

AI视频翻译API/SaaS平台收费标准横评:你的每一条视频翻译到底要花多少钱?

一、引言 做视频翻译的开发者或内容团队&#xff0c;大概率都经历过这样的场景&#xff1a;兴冲冲地注册了一个 AI 视频翻译平台&#xff0c;用免费额度试了两条&#xff0c;效果不错。但当你真正要处理每月上百条视频时&#xff0c;发现定价页的"$XX/月"远不是全部…...

数据库监控与性能调优

数据库监控与性能调优 1. 技术分析 1.1 监控概述 数据库监控是保证系统稳定的关键&#xff1a; 监控维度性能指标: CPU、内存、I/O查询指标: 响应时间、吞吐量资源指标: 连接数、锁等待监控目标:性能预警故障诊断容量规划1.2 性能调优层次 调优层次应用层: SQL优化、连接池配置…...

给硬件工程师的芯片FT测试入门:从ATE、Handler到Socket,一次搞懂所有‘治具’

芯片FT测试全流程实战指南&#xff1a;从设备选型到治具配置 第一次走进芯片测试车间时&#xff0c;我被眼前那些闪烁着信号灯的庞大设备和精密治具震撼到了。作为硬件工程师&#xff0c;我们可能更熟悉PCB设计和电路仿真&#xff0c;但当芯片进入量产阶段&#xff0c;如何确保…...

C# 环境:深入解析与应用

C# 环境:深入解析与应用 引言 C#(读作“C Sharp”)是一种由微软开发的高级编程语言,广泛应用于Windows平台的应用程序开发。自从2002年推出以来,C#已经成为了全球开发者喜爱的编程语言之一。本文将深入解析C#环境,包括其特点、应用场景以及开发环境搭建等。 C#环境概述…...

Perplexity vs ChatGPT vs Claude:用户评论情感分析对比报告(NLP模型实测,含21项维度打分)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity用户评论汇总 主流平台用户反馈概览 Perplexity 作为以引用驱动、实时联网为特色的AI问答工具&#xff0c;近期在Reddit、Product Hunt及Twitter等平台收获大量真实用户评论。高频关键词包括…...

物联网平台融资潮解析:从资本流向看行业技术演进与未来格局

1. 项目概述&#xff1a;为什么我们要关注物联网平台的融资潮&#xff1f;最近几年&#xff0c;如果你在科技圈里待着&#xff0c;很难不注意到一个现象&#xff1a;那些做物联网开发平台的公司&#xff0c;动不动就宣布完成了上亿甚至数亿美元的融资。这已经不是个别现象&…...

基于MYC-Y6ULX-V2核心板的工业运动控制系统实践

1. 项目概述&#xff1a;当工业运动控制遇上嵌入式核心板在工业自动化领域&#xff0c;运动控制系统是驱动设备精确执行动作的“大脑”和“神经中枢”。从数控机床的精密加工&#xff0c;到机器人的流畅轨迹&#xff0c;再到包装产线的快速分拣&#xff0c;其核心都依赖于一个稳…...

从游戏到科研:手把手教你设计并运行一个n-back工作记忆测试

从游戏到科研&#xff1a;手把手教你设计并运行一个n-back工作记忆测试 工作记忆是人类认知功能的核心组成部分&#xff0c;它直接影响着我们的学习、推理和问题解决能力。在心理学和认知科学领域&#xff0c;n-back任务已经成为评估工作记忆容量的黄金标准之一。本文将带你从零…...

YOLOv8铁轨轨道缺陷识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置)

摘要 针对铁轨表面缺陷自动化检测需求&#xff0c;本研究构建了基于YOLOv8的实时检测系统&#xff0c;涵盖Spalling&#xff08;剥落&#xff09;、Wheel Burn&#xff08;车轮烧伤&#xff09;、Squat&#xff08;轨头压溃&#xff09;和Corrugation&#xff08;波浪磨耗&…...