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,最后把处理好的当前层数据存入结果集合中返回

相关推荐
李洛克0713 分钟前
RDMA 编程完整学习路线图
学习·rdma·路线
你想知道什么?37 分钟前
JNI简单学习(java调用C/C++)
java·c语言·学习
TL滕1 小时前
从0开始学算法——第十二天(KMP算法练习)
笔记·学习·算法
Math_teacher_fan1 小时前
第二篇:核心几何工具类详解
人工智能·算法
汉克老师1 小时前
CCF-NOI2025第二试题目与解析(第二题、集合(set))
c++·算法·noi·子集卷积·sos dp·mod 异常
TG:@yunlaoda360 云老大1 小时前
腾讯云国际站代理商TACO Kit有什么优势呢?
学习·云计算·腾讯云
mit6.8241 小时前
presum|
算法
不穿格子的程序员1 小时前
从零开始写算法——链表篇2:从“回文”到“环形”——链表双指针技巧的深度解析
数据结构·算法·链表·回文链表·环形链表
guygg882 小时前
基于Matlab的压缩感知信道估计算法实现
开发语言·算法·matlab