【LeetCode必刷好题】:Java顺序表实现杨辉三角
🎁个人主页:User_芊芊君子
🎉欢迎大家点赞👍评论📝收藏⭐文章
🔍系列专栏:Java.数据结构
【前言】
杨辉三角作为经典的数学与编程结合案例,是理解二维数组和动态列表操作的绝佳素材。本文将带你从逻辑拆解、问题分析、优化方向等角度进行详细解析,带你彻底掌握杨辉三角的实现精髓。
文章目录:
一、杨辉三角思路分析
杨辉三角每一行数字都是上一行两个相邻数字之和
思路分析:
创建一个二维列表List<List<Integer>>,储存整个三角外层循环控制行数 i,0~numRows内层循环是列数 j,小于 i每一行第一个和最后一个是1中间元素通过上一行相邻元素加得
二、代码实现
publicclassTest{publicList<List<Integer>>generate(int numRows){//定义最终返回的ListList<List<Integer>> ret =newArrayList<>();//直接赋值第0行的值1List<Integer> list0 =newArrayList<>(); list0.add(1); ret.add(list0);//计算第一下标这一行for(int i =1; i < numRows; i++){List<Integer> curRow =newArrayList<>();//每一行第一个数 curRow.add(1);//处理中间List<Integer> preRow = ret.get(i -1);//获取上一行for(int j =1; j < i; j++){int x = preRow.get(j)+ preRow.get(j -1); curRow.add(x);}//每一行最后 curRow.add(1);//处理完成,将当前行加入ret中 ret.add(curRow);}return ret;}}三、总结
杨辉三角虽然看起来简单,但它蕴含的数学规律和编程技巧值得我们学习,通过这篇文章,掌握了杨辉三角的基本原理和生成方法,二维列表和空间复杂度。