面试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],即到达终点的路径数。

相关推荐
khalil10203 小时前
代码随想录算法训练营Day-38动态规划06 | 322. 零钱兑换、279.完全平方数、139.单词拆分、多重背包、总结
数据结构·c++·算法·leetcode·动态规划
我是大聪明.3 小时前
大模型Tokenizer原理:BPE、WordPiece与子词编码的核心机制深度解析
人工智能·线性代数·算法·机器学习·矩阵
xin_nai7 小时前
LeetCode热题100(Java)(6)矩阵
java·leetcode·矩阵
workflower13 小时前
具身智能行业应用-生活服务业
大数据·人工智能·机器人·动态规划·生活
嘻嘻哈哈樱桃18 小时前
牛客经典101题题解集--动态规划
java·数据结构·python·算法·职场和发展·动态规划
电科一班林耿超18 小时前
第 16 课:动态规划专题(二)—— 子序列与子数组问题:面试最高频的 DP 题型
数据结构·算法·动态规划
fengfuyao98519 小时前
MATLAB实现自适应动态规划(ADP)方法
matlab·动态规划·代理模式
cheems95271 天前
[算法手记] 动态规划 ,二维费用限制背包问题如何处理
算法·动态规划
样例过了就是过了1 天前
LeetCode热题100 单词拆分
c++·算法·leetcode·动态规划·哈希算法
沙白猿1 天前
代码随想录 28(动态规划)
算法·动态规划