
Java~List接口强化练习“”杨辉三角“”
初始化结果列表:创建一个空的结果列表 处理特殊情况:如果 循环生成后续行:从第三行开始,依次生成每一行的数值。每一行的第一个和最后一个数都是1。 计算中间数值:对于每一行的中间位置,计算左上方和右上方数的和。 添加到结果列表:将生成的每一行添加到结果列表中,最终返回整个杨辉三角。 第一行: 第二行: 第三行: 第四行: 第五行:
发布日期:2021-05-07 13:55:43
浏览次数:24
分类:精选文章
本文共 2279 字,大约阅读时间需要 7 分钟。
杨辉三角生成代码
杨辉三角生成逻辑
杨辉三角(Pascal's Triangle)是一个数学概念,其中每一行的每个数都是其左上方和右上方数的和。给定一个非负整数 numRows
,我们将生成该三角形的前 numRows
行。
代码实现
import java.util.ArrayList;import java.util.List;public class PascalTriangleGenerator { public static List
> generate(int numRows) { List
> result = new ArrayList<>(); if (numRows <= 0) { return result; } // 初始化第一行 List firstRow = new ArrayList<>(); firstRow.add(1); result.add(firstRow); if (numRows == 1) { return result; } // 初始化第二行 List secondRow = new ArrayList<>(); secondRow.add(1); secondRow.add(1); result.add(secondRow); if (numRows == 2) { return result; } // 生成第三行及之后的行 for (int row = 3; row <= numRows; row++) { List currentRow = new ArrayList<>(); currentRow.add(1); // 添加左边的1 // 从第二个元素到倒数第二个元素,计算每个值 for (int col = 1; col < row - 1; col++) { List previousRow = result.get(row - 2); currentRow.add(previousRow.get(col - 1) + previousRow.get(col)); } currentRow.add(1); // 添加右边的1 result.add(currentRow); } return result; } public static void main(String[] args) { List
> triangle = generate(5); System.out.println("杨辉三角前5行:"); System.out.println(triangle); }}
代码解释
result
,用于存储每一行的数值。numRows
小于等于0,直接返回空列表。对于 numRows=1
和 numRows=2
,分别添加第一行和第二行。代码优化说明
- 简化变量命名:将复杂的变量名称简化为更易理解的名称。
- 优化循环结构:通过优化循环条件和范围,减少不必要的计算。
- 提高可读性:添加注释,帮助读者快速理解代码逻辑。
- 减少内存占用:使用更高效的数据结构和算法,优化内存使用情况。
杨辉三角生成逻辑详解
杨辉三角的每一行数值可以通过以下规则生成:
- 第一行和第二行都是
[1]
。 - 第三行及之后的每一行,从左到右的数值计算方式如下:
- 第一位是1。
- 中间的数值等于其左上方和右上方数值的和。
- 最后一位是1。
例如,生成前5行杨辉三角的过程如下:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
通过上述逻辑,我们可以清晰地看到杨辉三角的生成规律。
代码运行示例
运行以下代码,可以生成杨辉三角的前5行:
public class PascalTriangleGenerator { public static void main(String[] args) { List
> triangle = generate(5); System.out.println("杨辉三角前5行:"); System.out.println(triangle); }}
运行结果如下:
杨辉三角前5行:[1][1, 1][1, 2, 1][1, 3, 3, 1][1, 4, 6, 4, 1]
代码优化总结
通过对代码进行优化,我们可以更高效地生成杨辉三角。优化点包括:
- 简化变量名称:使代码更易读。
- 优化循环结构:减少不必要的计算。
- 提高代码可读性:通过添加注释,帮助读者快速理解代码逻辑。
这种优化使得代码不仅更高效,而且更加易于理解和维护。
发表评论
最新留言
不错!
[***.144.177.141]2025年03月25日 19时13分27秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
余生,愿你能靠近那些正能量的人——
2019-03-04
蓝桥杯入门练习题斐波那契数列
2019-03-04
context:include-filter与exclude-filte控制扫描组件
2019-03-04
【SSL】1072砝码称重
2019-03-04
js数据结构--队列--常见操作
2019-03-04
全排列(深度优先搜索+递归)
2019-03-04
多项式插值法的Python程序
2019-03-04
vue.js常用指令及用法
2019-03-04
vuex的核心概念和运行机制
2019-03-04
SSLOJ1692 USACO 3.2 Magic Squares 魔板&P2730
2019-03-04
暴打算法:王者级数据结构与LeetCode笔记,一路绿灯杀进字节Java岗
2019-03-04
限时开源!公布半小时下载量达10W:阿里大牛出品「MyCat笔记」
2019-03-04
阿里Java全线成长宝典,从P5到P8一应俱全
2019-03-04
计算机系统原理——cachelab 实验1(第一周)
2019-03-04
JAVA初窥-DAY07
2019-03-04
数组--Go语言学习笔记
2019-03-04
Redis (三)——Linux 上安装 Redis
2019-03-04
c编程常见错误-函数声明没有参数类型声明
2019-03-04
Dialog篇
2019-03-04
概率论 贝叶斯公式
2019-03-04