【数据结构Java版】杨辉三角中ArrayList的运用 左手的ㄟ右手 2024-04-03 11:54 30阅读 0赞 前情提要:关于List<List<String>>的理解 List<List<String>>可以拆解成 List<这个List的元素的类型> List<元素的类型> ![0be4888f78c0478f8fbf7e63e1fa2861.png][] import java.util.ArrayList; import java.util.List; public class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> ans = new ArrayList<>(); if (numRows == 0) { return ans; // 里面一行都没有 } ans.add(new ArrayList<>()); ans.get(0).add(1); if (numRows == 1) { return ans; // { { 1 } } } ans.add(new ArrayList<>()); ans.get(1).add(1); ans.get(1).add(1); if (numRows == 2) { return ans; // { { 1 }, { 1, 1 } } } for (int i = 3; i <= numRows; i++) { // 结果中需要多添加一行 List<Integer> curLine = new ArrayList<>(); ans.add(curLine); // 新添加的这行的第一个元素一定是 1 ans.get(i - 1).add(1); // 等价于 curLine.add(1) // 处理除了最后一个元素以外的其他元素 // 这个是第 i 行,一共有 i 个元素,除去第一个和最后一个,还剩 i - 2 个元素 for (int j = 0; j < i - 2; j++) { // j = 0 的时候,需要计算该行的第 2 个元素 // 由上一行的第 1 个元素和第 2 个元素相加 // j = 1 的死后,需要计算该行的第 3 个元素 // 由上一行的第 2 个元素和第 3 个元素相加 // 计算该行的 j + 2 个元素 // 由上一行的 j + 1 个元素和 j + 2 个元素 // 换成下标之后,统一减一 // 上一行的 [j] 和 [j + 1] 的元素 // 当前行的下标 [i - 1],上一行的下标就是 [i - 2] // 先得到上一行 List<Integer> prevLine = ans.get(i - 2); int first = prevLine.get(j); int second = prevLine.get(j + 1); int e = first + second; curLine.add(e); } // 该行的最后一个元素还是 1 curLine.add(1); } return ans; } public static void main(String[] args) { Solution solution = new Solution(); System.out.println(solution.generate(0)); System.out.println(solution.generate(1)); System.out.println(solution.generate(2)); System.out.println(solution.generate(3)); System.out.println(solution.generate(4)); } } ![373fd27dbdfa43fba47755405e38ad41.png][] [0be4888f78c0478f8fbf7e63e1fa2861.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/03/cf93c410719649f195c4753f65d5875e.png [373fd27dbdfa43fba47755405e38ad41.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/03/3bc9738431424cf2ab242b0ff64e85a2.png
相关 【数据结构Java版】杨辉三角中ArrayList的运用 前情提要:关于List<List<String>>的理解 List<List<String>>可以拆解成 List<这个List的元素的类型> List<元素的类型> 左手的ㄟ右手/ 2024年04月03日 11:54/ 0 赞/ 31 阅读
相关 java 杨辉三角 public class TestYH\{ public static void main(String\[\] args)\{ int rows = 5; int 不念不忘少年蓝@/ 2023年10月08日 12:13/ 0 赞/ 7 阅读
相关 杨辉三角 一、什么是杨辉三角 > 杨辉三角:是二项式系数在三角形中的一种几何排列。 > 杨辉三角的每个数等于它上方两数之和。 > ![在这里插入图片描述][20201206 末蓝、/ 2022年12月26日 15:26/ 0 赞/ 299 阅读
相关 java-杨辉三角 打印杨辉三角 package day06; import java.util.Scanner; public class Arra 妖狐艹你老母/ 2022年06月14日 03:49/ 0 赞/ 236 阅读
相关 杨辉三角 package day05; import java.util.Scanner; /\\ \ java基础:键盘录入/二维数组 \ Author: \ Desc 蔚落/ 2022年06月07日 14:13/ 0 赞/ 281 阅读
相关 杨辉三角 题目描述 按要求输入如下格式的杨辉三角 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 最多输出10层 逃离我推掉我的手/ 2022年05月05日 09:56/ 0 赞/ 299 阅读
相关 杨辉三角 import java.util.Scanner; public class Main \{ public static void main(String\[\] ar 柔光的暖阳◎/ 2022年04月22日 08:38/ 0 赞/ 254 阅读
相关 杨辉三角 杨辉三角 import java.util.Scanner; / 需求:打印杨辉三角(行数通过键盘录入) 刺骨的言语ヽ痛彻心扉/ 2022年04月04日 17:44/ 0 赞/ 306 阅读
相关 杨辉三角 打印杨辉三角 代码: import java.util.; public class test1 { / 输出杨辉三角 / 太过爱你忘了你带给我的痛/ 2021年09月23日 08:58/ 0 赞/ 510 阅读
相关 杨辉三角 \include<stdio.h> void f(int a\[\]\[10\],int n) \{ int i=0,j=0; for(i=0;i<n; 港控/mmm°/ 2021年06月24日 13:58/ 0 赞/ 508 阅读
还没有评论,来说两句吧...