多语言展示
当前在线:1627今日阅读:138今日分享:34

Java如何编程获取杨辉三角第N行的所有值

题目:给定一个非负整数 N (N >= 0),返回杨辉三角的第 N 行 (行数从 0 开始计算)。注意:因为返回一个 Integer (32位整数) 列表,为防止整数越界溢出,本题目限定 N<=33 。本篇经验将分享两种求解方式,一种是编程法,一种是公式法,后者可用于改善前者的时间复杂度和空间复杂度。
工具/原料
1

Eclipse

2

JDK1.8

方法/步骤
1

编程法求解图示,观察杨辉三角,可以发现其中每一行的值等于其上一行左右角位置的值的和,通过这种规律,可以编写递归算法逐行求出杨辉三角的值,直到参数指定行数。

2

开发相关代码,测试编程法图1示,主方法中指定参数,调用编程法,并将结果输出到控制台图2示,运行主方法,观察控制台输出,符合预期

3

平台提交算法图示,在平台提交算法,测试用例测试通过,但编程法空间复杂度较高。

4

公式法求解(用于改善编程法的时间复杂度和空间复杂度)杨辉三角第N行的值即(1+X)的 N 次幂展开后各项的系数,图示,通过使用这个公式,开发相关代码,注意,因为中间计算设计到大数相乘,为防止 int 值溢出,这里的局部变量声明为 long 类型。

5

编写测试代码,测试公式求解法图1示,调用公式求解法,获取杨辉三角第10行的值图2示,运行测试方法,观察控制台输出,两个算法输出一致,符合预期

6

平台提交公式求解算法图示,公式求解算法改善了编程求解算法的时间复杂度和空间复杂度

注意事项
1

本题目中,杨辉三角的行索引值从0开始计算

2

公式法中间计算结果如果用int表示,会发生值溢出,需要使用 long 来声明

推荐信息