leetcode hot100 64. 最小路径和 medium 递归优化


dfs(i, j) = 从 (0,0) 走到 (i,j) 的最小路径和

到 (i, j) 只能 :向下 or 向右

clike 复制代码
dfs(i, j) = min(
							dfs(i + 1, j),    // 向下
							dfs(i, j + 1)     // 向右
							) + grid[i][j]

时间复杂度:O(m × n)

空间复杂度:O(m × n)

clike 复制代码
class Solution:
    def minPathSum(self, grid: List[List[int]]) -> int:

        # 时间复杂度:O(m × n), 空间复杂度:O(m × n)
        m = len(grid)
        n = len(grid[0])

        @cache
        def dfs(i, j):  # 当前位置(i, j)

            # 到达终点右下角
            if i == m - 1 and j == n - 1:
                return grid[i][j]

            # 越界
            if i >= m or j >= n:
                return float('inf')

            # 向下 or 向右
            return grid[i][j] + min(
                dfs(i + 1, j),   # 向下
                dfs(i, j + 1)    # 向右
            )

        return dfs(0, 0)   # 当前位置(i, j)从(0,0)开始
相关推荐
旖旎夜光1 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
CoderYanger1 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
圣保罗的大教堂1 天前
leetcode 3524. 求出数组的 X 值 I 中等
leetcode
Tim_101 天前
【LeetCode】338、比特位计数
c++·算法·leetcode
mmmmath_31 天前
LeetCode.028.找出字符串中第一个匹配项的
数据结构·算法·leetcode
金融小师妹1 天前
AI金融能力评估:18个主流模型金融问题平均错误率达57%
人工智能·云计算·逻辑回归·深度优先
Navigator_Z1 天前
LeetCode //C - 1255. Maximum Score Words Formed by Letters
c语言·算法·leetcode
All for pursuit.1 天前
【栈-4】739.每日温度
数据结构·c++·算法·leetcode
开开心心就好1 天前
安卓手写文字生成工具,多种纸张一直免费
网络·网络协议·tcp/ip·leetcode·智能手机·电脑·模拟退火算法
All for pursuit.1 天前
【栈-5】84.柱状图中最大的矩形
数据结构·c++·算法·leetcode