leet code Pascal's Triangle

杨辉三角打印 题目:https://leetcode.com/problems/pascals-triangle/

解题思路:

1.第一个元素是1

2.从第二行开始,第一个元素和最后一个元素都是1

3.从第三行 开始中间的元素是上一行元素当前位置和前一个位置的和 即 pre.get(j-1)+pre.get(j)

4.不断更新上一个列表pre

    public static void main(String[] args) {
		List<List<Integer>> generate = generate(5);
		for (List<Integer> integerList : generate) {
			System.out.println(integerList);
		}
	}

	/**
	 * 杨辉数组打印
	 * @param numRows
	 * @return
	 */
	public static  List<List<Integer>> generate(int numRows) {
		List<List<Integer>> list=new ArrayList<>();
		if(numRows==0){
			return list;
		}
		List<Integer> pre=new ArrayList<>();
		pre.add(1);
		list.add(pre);
		for(int i=0;i<numRows-1;i++){
			List<Integer> cur=new ArrayList<>();
			cur.add(1);
			for(int j=1;j<pre.size();j++){
				cur.add(pre.get(j-1)+pre.get(j));
			}
			cur.add(1);
			list.add(cur);
			pre=cur;
		}
		return list;
	}

猜你喜欢

转载自blog.csdn.net/u011243684/article/details/84792253