0
点赞
收藏
分享

微信扫一扫

LeetCode-day11-2813. 子序列最大优雅度

萍儿的小确幸 2024-06-18 阅读 32

什么是杨辉三角形

杨辉三角形的规律

  1. 直角三角形 :每行内的数据和和行的个数相等,例如第1行 1列,第2行有2列,第3行有3列…。

  2. 第一列和斜边列值都为1: 列 = =0;结果为1,列==行, 结果1
    在这里插入图片描述
    在这里插入图片描述

  3. 其它每个元素的结果= 上一行的前一列数据 + 上一行的当前列数据,使用数组表示: a[row][col] = a[row-1][col-1] + a[row-1][col];

迭代实现

int[][] a = new int[10][10]; //定义数组存储杨辉三角形数据

for (int row = 0; row < a.length; row++) { //外循环表示三角形行
    for (int col = 0; col <= row; col++) {//内循环表示三角形列
        if (col == 0 || col == row) {//第一列或者三角形斜边值为1
            a[row][col] = 1;
        } else { //当前值为上一行的相邻两数和
            a[row][col] = a[row - 1][col - 1] + a[row - 1][col];
        }
    }
}
/**
 *  打印杨辉三角形
 */
for (int row = 0; row < a.length; row++) {
    for (int col = 0; col <= row; col++) {
        System.out.print(a[row][col] + "\t");
    }
    System.out.println();
}

递归实现

 public static int f(int row, int col){
        if(col==0|| row ==col) return 1;
        return f(row-1,col-1)+ f(row-1,col);
    }
举报

相关推荐

0 条评论