解题思路:简单的做法是从顶到底,递归的调用函数,得到最小路径值,但这样会超时。使用动态规划,令ret[i][j]为从顶到第i行,第j列的元素的最小路径。
则
ret[i][j] = min(ret[i-1][j-1]+triangle[i][j], ret[i-1][j-1]+triangle[i][j])
对于j=0,j=i-1的情况,只有一条路径,要做特殊处理。
代码如下:
1 | class Solution { |
运行结果:6ms,超过29.69%
aim higher
解题思路:简单的做法是从顶到底,递归的调用函数,得到最小路径值,但这样会超时。使用动态规划,令ret[i][j]为从顶到第i行,第j列的元素的最小路径。
则
ret[i][j] = min(ret[i-1][j-1]+triangle[i][j], ret[i-1][j-1]+triangle[i][j])
对于j=0,j=i-1的情况,只有一条路径,要做特殊处理。
代码如下:
1 | class Solution { |
运行结果:6ms,超过29.69%