LeetCode - Pascal's Trangle

本文介绍了一种生成杨辉三角的算法实现,并提供了完整的Java代码示例。通过递增循环和利用上一行的数据来构建每一行,实现了杨辉三角的高效生成。

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

这道题是生成杨辉三角,看了下杨辉三角的性质,就可以解决了。

下面是AC代码:

 1 /**
 2      * Given numRows, generate the first numRows of Pascal's triangle.
 3      * @param numRows
 4      * @return
 5      */
 6     public ArrayList<ArrayList<Integer>> generate(int numRows){
 7         ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
 8         if(numRows<=0)
 9             return result;
10         ArrayList<Integer> row1 = new ArrayList<Integer>();
11         row1.add(1);
12         result.add(row1);
13         if(numRows == 1)
14         {
15             return result;
16         }
17         ArrayList<Integer> row2 = new ArrayList<Integer>();
18         row2.add(1);
19         row2.add(1);
20         result.add(row2);
21         if(numRows == 2){
22             return result;
23         }
24         for(int i=3;i<=numRows;i++){
25             ArrayList<Integer> ls = new ArrayList<Integer>();
26             genOneRow(i,result.get(i-2),ls);
27             result.add(ls);
28         }
29         return result;
30     }
31     /**
32      * 生成第row排的结果
33      * @param row
34      * @param last
35      * @param curr
36      */
37     private void genOneRow(int row,ArrayList<Integer> last, ArrayList<Integer> curr){
38         curr.add(1);
39         for(int i=0;i<last.size()-1;i++){
40             curr.add(last.get(i)+last.get(i+1));
41         }
42         curr.add(1);
43     }
44     

 

转载于:https://www.cnblogs.com/echoht/p/3703021.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值