0
点赞
收藏
分享

微信扫一扫

【力扣刷题总结之119. 杨辉三角 II】

1kesou 2022-02-09 阅读 72

相关标签


一、题目要求

二、题解和代码实现

1.题解

 非官方题解,看图理解

2.代码实现

代码如下(示例):

//动态规划
class Solution {
  public List<Integer> getRow(int rowIndex) {
        Integer[] arr = new Integer[rowIndex+1];
        Arrays.fill(arr,1);//初始化全部为1

        for (int i = 2; i < arr.length; i++) {//从第三行开始,因为前两行的值都为1,跳过
            for (int j = i-1; j > 0; j--) {//首尾两格不动
                //要从后往前遍历,就是每一行倒着从后往前填,这样每覆盖填写一个数就不会影响下一项的计算。
                arr[j]+=arr[j-1];// arr[ j ] = arr[ j - 1 ] + arr[ j ]的简写
            }
        }
        return Arrays.asList(arr);
    }
}

//暴力破解

class Solution {
  public List<Integer> getRow(int rowIndex) {
        Integer[][] arr = new Integer[rowIndex + 1][rowIndex + 1];//生成数组

        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j <=i; j++) {//遍历
                if (j ==0 || j==i){//当j为0 或者末尾i时赋值为1
                    arr[i][j] =1;
                }else {//当不是时,赋值为左上方和右上方的和
                    arr[i][j]= arr[i-1][j-1]+arr[i-1][j];
                }
                
            }
        }
     

        return  Arrays.asList(arr[rowIndex]);

    }
}
举报

相关推荐

0 条评论