面试150 不同路径Ⅱ

思路

本题采用动态规划的方法来求解,其中 dp[i][j] 表示从起点到达位置 (i, j) 的路径总数。关键在于初始化:如果起点所在位置的元素不是障碍(即不为 1),则初始路径数设为 1。接着分别初始化第一行和第一列,如果当前位置不是障碍,且前一个位置可达,则路径数为 1,否则为 0。在填充整个 dp 数组的过程中,只要当前位置不是障碍,通过状态转移公式 dp[i][j] = dp[i-1][j] + dp[i][j-1] 更新路径总数。最终返回 dp[m-1][n-1],即到达终点的路径数。

相关推荐
做怪小疯子11 小时前
LeetCode 热题 100——矩阵——旋转图像
算法·leetcode·矩阵
稚辉君.MCA_P8_Java14 小时前
Gemini永久会员 Java动态规划
java·数据结构·leetcode·排序算法·动态规划
少许极端17 小时前
算法奇妙屋(十四)-简单多状态dp问题
算法·动态规划·图解算法·简单多状态dp·打家劫舍问题·买卖股票问题全解
passxgx18 小时前
11.1 高斯消元法的应用
线性代数·矩阵
稚辉君.MCA_P8_Java20 小时前
Gemini永久会员 Go 实现动态规划
数据结构·后端·算法·golang·动态规划
利刃大大1 天前
【动态规划:背包问题】完全平方数
c++·算法·动态规划·背包问题·完全背包
前端小L2 天前
图论专题(十九):DAG上的“关键路径”——极限规划「并行课程 III」
算法·矩阵·深度优先·图论·宽度优先
艾莉丝努力练剑2 天前
【优选算法必刷100题】第031~32题(前缀和算法):连续数组、矩阵区域和
大数据·人工智能·线性代数·算法·矩阵·二维前缀和
醉颜凉2 天前
环形房屋如何 “安全劫舍”?动态规划解题逻辑与技巧
c语言·算法·动态规划
mjhcsp2 天前
C++ 动态规划(Dynamic Programming)详解:从理论到实战
c++·动态规划·1024程序员节