1, 题目
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 3输出: [1,3,3,1]
进阶:
你可以优化你的算法到 O(k) 空间复杂度吗?
2, 算法
object Solution {def getRow(rowIndex: Int): List[Int] = {if (rowIndex == 0) {return List(1)}if (rowIndex == 1) {return List(1, 1)}var last = Array(1, 1)for (x <- 2 to rowIndex) {val current = scala.collection.mutable.ArrayBuffer[Int]()current.append(1)for (i <- Range(0,last.length-1)) {current.append(last(i) + last(i + 1))}current.append(1)last = current.toArray}last.toList}}
class Solution:def getRow(self, rowIndex: int) -> List[int]:if rowIndex == 0:return [1]if rowIndex == 1:return [1, 1]last = [1, 1]for x in range(2, rowIndex + 1):current = [1]for i in range(len(last) - 1):current.append(last[i] + last[i + 1])current.append(1)last = currentreturn last
