LeetCode算法学习之杨辉三角

完整代码如下

java 复制代码
class Solution {
    public List<List<Integer>> generate(int numRows) {
        //初始化一个结果数组
        List<List<Integer>> result = new ArrayList<>();
        if(numRows == 0){
            return result;
        }
        List<Integer> firstRow = new ArrayList<>();
        firstRow.add(1);
        result.add(firstRow);
        
        //从第二行开始
        for(int i = 1;i<numRows;i++){
            List<Integer> preNums = result.get(i-1);
            List<Integer> currentNums = new ArrayList<>();

            currentNums.add(1);
            for(int j = 1;j<i;j++){
                currentNums.add(preNums.get(j-1)+preNums.get(j));
            }
             currentNums.add(1);
             result.add(currentNums);
        }
       
        return result;
    }
}

解题思路:

如果输入的numRows为0的话,则直接返回结果数组,因为第0行没有元素,杨辉三角的第1行是固定不变的,所以可以直接进行添加,从第2行开始,杨辉三角的生成规律是首尾固定为1,中间的数依赖于上一层的数值进行两两相加计算得到的,所以我们可以在numRows的循环中获取上一层数值,来计算当前层的数值,当前层的计算方式:首元素固定添加为1,进入循环计算上一层两两相加的数值添加到当前层,最后一位元素添加为1,最后把处理好的当前层数据存入结果集合中返回

相关推荐
好奇龙猫9 小时前
【人工智能学习-AI入试相关题目练习-第七次】
人工智能·学习
夏鹏今天学习了吗11 小时前
【LeetCode热题100(87/100)】最小路径和
算法·leetcode·职场和发展
jacGJ11 小时前
记录学习--文件读写
java·前端·学习
哈哈不让取名字12 小时前
基于C++的爬虫框架
开发语言·c++·算法
枷锁—sha12 小时前
【PortSwigger Academy】SQL 注入绕过登录 (Login Bypass)
数据库·sql·学习·安全·网络安全
魔芋红茶13 小时前
Spring Security 学习笔记 2:架构
笔记·学习·spring
Lips61114 小时前
2026.1.20力扣刷题笔记
笔记·算法·leetcode
2501_9413297214 小时前
YOLOv8-LADH马匹检测识别算法详解与实现
算法·yolo·目标跟踪
洛生&14 小时前
Planets Queries II(倍增,基环内向森林)
算法
小郭团队14 小时前
1_6_五段式SVPWM (传统算法反正切+DPWM2)算法理论与 MATLAB 实现详解
嵌入式硬件·算法·matlab·dsp开发