[LeetCode] 118. Pascal's Triangle Java

本文介绍了一种简单有效的算法,用于生成杨辉三角的前numRows行。通过直接产生每一行并添加进结果列表,实现了杨辉三角的构建。特别地,文章详细解释了如何通过上一行的数据来计算当前行的中间数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

Given numRows, generate the first numRows of Pascal's triangle.

For example, given numRows = 5,
Return

[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

 题意及分析:给出一个杨辉三角的前numRow行。题比较简单,直接产生每一行,然后添加进去即可,每一行的第一个数为1,第二行开始最后一个数也为1,中间的数由上一行产生。

代码:

 

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> result = new ArrayList<>();

        for(int i=1;i<=numRows;i++){
            List<Integer> list = new ArrayList<>();
            list.add(1);  //每行第一个数为1
            List<Integer> preRowList = new ArrayList<>();  //取出上一行数据
            if(result.size()>1)
                preRowList = result.get(result.size()-1);
            for(int k=1;k<i-1;k++){       //长生每行中间的数
                list.add(preRowList.get(k-1)+preRowList.get(k));
            }
            if(i>=2)      //第二行开始每一行最后都为1
                list.add(1);
            result.add(list);
        }
        return result;
    }
}

 

 

 

 


 
Seen this question in a real inte

转载于:https://www.cnblogs.com/271934Liao/p/7813241.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值