LeetCode_Pascal's Triangle

本文介绍了一种生成帕斯卡三角形的方法,并提供了一个Java实现的示例代码。通过迭代填充的方式,可以生成任意层数的帕斯卡三角形。

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

https://leetcode.com/problems/pascals-triangle/

GivennumRows, generate the firstnumRowsof Pascal's triangle.

For example, givennumRows= 5,
Return

[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]
代码:

public class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ls = new ArrayList<List<Integer>>(numRows);
		for(int i = 0;i<numRows;i++)
		{
			List<Integer> ls1 = new ArrayList<Integer>();
			for(int j = 0;j<=i;j++)
			{
				ls1.add(0);
			}
			ls1.add(0, new Integer(1));
			ls1.add(i, new Integer(1));
			ls.add(ls1.subList(0, i+1));
			for(int j = 1;j<i;j++)
			if(i>=1)
			{
			     ls.get(i).set(j, ls.get(i-1).get(j-1)+ls.get(i-1).get(j));
			}
		}
		return ls;     
    }
}

总结:ArrayList<E>类的add(int index,Object o)方法并不是普通的向List中加入元素,而是插入(数组的插入需要后移),意味着当index<size时会抛出异常,这里纠结了好久。该方法的详细说明如下:

add

public void add(intindex,
                Eelement)
将指定的元素插入此列表中的指定位置。向右移动当前位于该位置的元素(如果有)以及所有后续元素(将其索引加 1)。

指定者:
接口 List<E>中的 add
覆盖:
AbstractList<E>中的 add
参数:
index- 指定元素所插入位置的索引
element- 要插入的元素
抛出:
IndexOutOfBoundsException- 如果索引超出范围 ( index < 0 || index > size())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值