119. 杨辉三角 II

题目链接:https://leetcode-cn.com/problems/pascals-triangle-ii/

首先想到的是用二维数组保存记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
func getRow(_ rowIndex: Int) -> [Int] {
if rowIndex == 0 {
return [1]
}
var dp = [[Int]]()
var row = [Int]()
row.append(1)
dp.append(row)
row = []
for i in 1 ... rowIndex {
row.append(1)
let n = dp[i-1].count - 1
for j in 0 ..< n {
row.append(dp[i-1][j]+dp[i-1][j+1])
}
row.append(1)
dp.append(row)
row = []
}
return dp[rowIndex]
}
}

O(rowIndex) 空间复杂度, 用两个一维数组

执行用时:0 ms, 在所有 Swift 提交中击败了100.00%的用户
内存消耗:13.3 MB, 在所有 Swift 提交中击败了98.36%的用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
func getRow(_ rowIndex: Int) -> [Int] {
if rowIndex == 0 {
return [1]
}
var res = [Int]()
var row = [Int]()
for i in 1 ... rowIndex {
for j in 0 ... i {
if j == 0 || j == i {
row.append(1)
}else{
row.append(res[j-1] + res[j])
}
}
res = row
row = []
}
return res
}
}

119. 杨辉三角 II
https://pisces34.github.io/2021/10/08/leetcode/119/
发布于
2021年10月8日
许可协议