768. 杨辉三角
768. 杨辉三角
中文English
给一整数 n
, 返回杨辉三角的前 n 行
样例
样例 1:
输入 : n = 4
输出 :
[
[1]
[1,1]
[1,2,1]
[1,3,3,1]
]
注意事项
0 <= n <= 20
- 杨辉三角也被叫做帕斯卡三角形. --(Wikipedia)
class Solution: """ @param n: a Integer @return: the first n-line Yang Hui's triangle """ ''' 大致思路: 1.前两个可以固定,后面的数可以开始计算正上方两个数之和 2.最左边和最右边固定为1(从第三个开始,按照一定规律) ''' def __init__(self): self.res = [[1],[1,1]] def calcYangHuisTriangle(self,n): if n==0: return [] elif n == 1: return [[1]] elif n == 2: return self.res ##给出两个固定值 for i in range(2,n): add_res = self.getnextres(i) self.res.append(add_res) return self.res ##给出一个方法,可以求得下一个数组,num为第几个(每调用一次都会append到self.res里面) def getnextres(self,num): ##本身是从1开始计数的,但是数组的话是从0开始,所以需要设置初始值 add_res = [1] for j in range(len(self.res[num-1])-1): add_res.append(self.res[num-1][j]+self.res[num-1][j+1]) add_res.append(1) return add_res