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

相关推荐
敬往事一杯酒哈5 小时前
海康 AGV 导航读码器学习
学习
信奥卷王6 小时前
[GESP202609 六级] 分树规划
算法
夏幻灵6 小时前
LeetCode 21:合并两个有序链表——双指针与哑节点详解
算法·leetcode·链表
qq_284274057 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
徐小黑ACG7 小时前
Golang 基础05 结构体struct
开发语言·算法·golang
qq_284274058 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Navigator_Z8 小时前
LeetCode //C - 1286. Iterator for Combination
c语言·算法·leetcode
北极有牛8 小时前
cpp学习笔记--常量指针
java·开发语言·算法
GPU实战笔记8 小时前
云端 GPU 训练的账户余额提醒:它能说明什么,不能说明什么?
深度学习·算法·成本管理·gpu云计算·云端训练