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

相关推荐
拾贰_C27 分钟前
【Linear Mathematics | 线性代数 | Matrix Theory |矩阵论】RREF的Pivot(主元)是什么?怎么找主元?
线性代数·矩阵
kong79069281 小时前
Java新特性-(四)方法与数组
java·数组·方法
Cx330❀1 小时前
《C++ 动态规划》第001-002题:第N个泰波拉契数,三步问题
开发语言·c++·算法·动态规划
拼命鼠鼠12 小时前
【算法】矩阵链乘法的动态规划算法
算法·矩阵·动态规划
长安er19 小时前
LeetCode 300/152/416/32 动态规划进阶题型总结(最长递增子序列→最长有效括号)
数据结构·算法·leetcode·动态规划·剪枝
好易学·数据结构21 小时前
可视化图解算法74:最小花费爬楼梯
数据结构·算法·leetcode·动态规划·力扣
加成BUFF1 天前
C++入门讲解3:数组与指针全面详解
开发语言·c++·算法·指针·数组
少许极端1 天前
算法奇妙屋(十九)-子序列问题(动态规划)
java·数据结构·算法·动态规划·子序列问题
好风凭借力,送我上青云1 天前
Pytorch经典卷积神经网络-----激活函数篇
人工智能·pytorch·深度学习·算法·矩阵·cnn
长安er2 天前
LeetCode 01 背包 & 完全背包 题型总结
数据结构·算法·leetcode·动态规划·背包问题