题目描述
Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle. Note that the row index starts from 0. In Pascal's triangle, each number is the sum of the two numbers directly above it.
Example:
Input: 3
Output: [1,3,3,1]
Follow up: Could you optimize your algorithm to use only O(k) extra space?
解题思路
返回杨辉三角的第N行, 要求空间复杂度为 O(N), 我们可以用递归来做
示例代码
func getRow(_ rowIndex: Int) -> [Int] {
if rowIndex == 0 {
return [1]
}
let last = getRow(rowIndex-1)
var temp: [Int] = Array.init(repeating: 0, count: rowIndex+1)
for i in 0...(rowIndex) {
if i == 0 || i == (rowIndex) {
temp[i] = 1
}else {
temp[i] = last[i-1] + last[i]
}
}
return temp
}