47.礼物的最大价值
Last updated
Last updated
func maxValue(_ grid: [[Int]]) -> Int {
let w = grid[0].count
let h = grid.count
var dp: [[Int]] = Array(repeating: Array(repeating: 0, count: w), count: h)
for y in 0..<h {
for x in 0..<w {
let value = grid[y][x]
if x == 0, y == 0 { dp[y][x] = value }
else if y == 0, x > 0 { dp[y][x] = dp[y][x-1] + value }
else if y > 0, x == 0 { dp[y][x] = dp[y-1][x] + value }
else { dp[y][x] = max(dp[y][x-1], dp[y-1][x]) + value }
}
}
return dp[h-1][w-1]
}