Given an index k, return the kth row of the Pascal’s triangle.

For example, given k = 3,
Return [1,3,3,1].

思路

杨辉三角有许多重要的性质。其中一个,就是它第n行数字代表的含义,恰好是n阶多项式展开的系数之值;推而广之,也就是n的各个组合数的值。因此在这一题中,直接采用求组合数的方法,利用组合数求解的公式即可得到结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import math
class Solution(object):
def getRow(self, rowIndex):
"""
:type rowIndex: int
:rtype: List[int]
"""
res = [1]
if (rowIndex <= 0):
return res
elif (rowIndex == 1):
res.append(1)
return res
else:
for i in range(1, rowIndex):
# 利用了math类当中的factorial函数求阶乘。
res.append(math.factorial(rowIndex)/math.factorial(i)/math.factorial(rowIndex-i))
res.append(1)
return res