LeedCode118. 杨辉三角(Java语言实现)——教你在两周时间刷完数据结构

一、118. 杨辉三角(Java语言实现)

题目描述

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。
在这里插入图片描述

示例 1:
输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例 2:
输入: numRows = 1
输出: [[1]]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/pascals-triangle
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

推荐方法:双链表

第一行有1个元素,第n行有n个元素
每一行的第一个元素和最后一个元素都是1
第三行开始,对于非第一个元素和最后一个元素的元素为上面和上面前面元素的和
即arr[i][j]=arr[i-1][j-1] + arr[i-1][j]

  public List<List<Integer>> generate(int numRows) {
    
    
        List<List<Integer>> list = new ArrayList<>();
        int[][] arr = new int[numRows][numRows];
        for (int i = 0; i < numRows; i++) {
    
    
            List<Integer> subList = new ArrayList<>();
            for (int j = 0; j <=i ; j++) {
    
    
                if(j==0 || j==i){
    
    
                    arr[i][j] = 1;
                }else{
    
    
                    arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
                }
                subList.add(arr[i][j]);
            }
            list.add(subList);
        }
        return list;
    }

结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_56321113/article/details/123240927