题目
一个三角形的n层迷宫,第i层有i个格子,每个格子里有一些礼品,第i层编号为j的格子可以通向第i+1层编号为j、j+1的格子。通道是单向的。求问从第1层第一个格子开始,一直走到迷宫最高层,最多能获得多少礼品。
具体描述请见hihoCoder。
解题思路
很简单的动态规划。递推式:
f[i+1, j] = max(f[i, j-1], f[i, j]) + V[i+1, j]
时间复杂度
时间复杂度为N2,空间复杂度为1(因为输入数据的矩阵维度与需要计算的一致)。
代码
1 |
|
一个三角形的n层迷宫,第i层有i个格子,每个格子里有一些礼品,第i层编号为j的格子可以通向第i+1层编号为j、j+1的格子。通道是单向的。求问从第1层第一个格子开始,一直走到迷宫最高层,最多能获得多少礼品。
具体描述请见hihoCoder。
很简单的动态规划。递推式:
f[i+1, j] = max(f[i, j-1], f[i, j]) + V[i+1, j]
时间复杂度为N2,空间复杂度为1(因为输入数据的矩阵维度与需要计算的一致)。
1 |
|
Author:Who Watson
Link:https://wangshenghu.github.io/2016/05/12/2016-05-12-hihocoder-number-triangle/
Publish date:May 12th 2016, 5:32:59 pm
Update date:December 4th 2022, 5:06:08 pm
License:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可