SEO关键词:Java杨辉三角、LeetCode算法题、Java顺序表、ArrayList实战教程
杨辉三角(Pascal's Triangle)是数学中一个非常著名的几何排列。它的规律非常简单:每行端点处的数字均为1,而中间的每一个数字都是它左上方和右上方的两个数字之和。在算法面试中,掌握Java杨辉三角的实现逻辑是夯实数据结构基础的关键一步。
在LeetCode中,这类题目通常要求返回一个 List<List<Integer>>。这实际上就是一个动态的二维数组。通过这篇ArrayList实战教程,我们可以利用 ArrayList 的动态扩容特性来存储每一行的数据。
row[j] = prevRow[j-1] + prevRow[j]。下面是这道LeetCode算法题的标准Java解法,代码中附带详细注释,非常适合小白学习:
import java.util.ArrayList;import java.util.List;public class PascalTriangle { public List<List<Integer>> generate(int numRows) { // 1. 定义外层顺序表:Java顺序表的嵌套 List<List<Integer>> ret = new ArrayList<>(); // 2. 第一行固定是 [1] List<Integer> firstRow = new ArrayList<>(); firstRow.add(1); ret.add(firstRow); // 3. 从第二行开始遍历 for (int i = 1; i < numRows; i++) { List<Integer> row = new ArrayList<>(); List<Integer> prevRow = ret.get(i - 1); // 获取上一行 // 行首添加1 row.add(1); // 计算中间元素 for (int j = 1; j < i; j++) { int num = prevRow.get(j - 1) + prevRow.get(j); row.add(num); } // 行尾添加1 row.add(1); // 将当前行存入结果集 ret.add(row); } return ret; }} 通过Java顺序表实现杨辉三角,我们的时间复杂度为 O(numRows²),因为我们需要填充三角形中的每一个数字。空间复杂度同样为 O(numRows²),用于存储生成的结果。
学习心得: 这道题不仅考察了循环控制逻辑,还让我们深入理解了 Java 集合框架中 ArrayList 的基本操作。对于初学者来说,熟练掌握这种嵌套 List 的处理方式,是通关 LeetCode 简单题的关键。
本文由主机测评网于2026-04-04发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20260433937.html