119. 杨辉三角 II
题目:给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。
题解:
杨辉三角的第 k 行等价于,二项式(x+y)k(x + y)^{k}(x+y)k 的系数。
Cnk=n!k!(n−k)!=n∗(n−1)∗(n−2)∗...(n−k+1)k! C_n^k=\dfrac{n!}{k!(n−k)!}=\dfrac{n∗(n−1)∗(n−2)∗...(n−k+1)}{k!} Cnk=k!(n−k)!n!=k!n∗(n−1)∗(n−2)∗...(n−k+1)
scala代码如下:
def getRow(rowIndex: Int): util.ArrayList[Int] = {
val list = new util.ArrayList[Int]()
val n = rowIndex
for (k <- 0 to n) {
list.add(combination(n, k))
}
list
}
def combination(n: Int, k: Int): Int = {
var res = 1
for (i <- 1 to k) {
res = res * (n - k + i) / i
}
res
}