#刷题交流#
矩形棋盘路径问题
解题方法总结如下:
一、问题理解:
这是一个迷宫路径计数问题,要求计算从左上角 (1,1) 到右下角 (n,m) 的所有可能路径数,同时避开障碍。
二、解题思路:
动态规划(DP):使用一个二维数组 dp 来存储到达每个位置的路径数。dp[i][j] 表示从起点 (1,1) 到达位置 (i,j) 的路径数。
初始化:将起点 (1,1) 的路径数设为1。如果某个位置是障碍,则将其路径数设为0。
状态转移:对于每个非障碍位置 (i,j),其路径数等于从上方 (i-1,j) 和左方 (i,j-1) 到达该位置的路径数之和。注意要处理边界条件,即当 i=1 或 j=1 时,只能从一个方向到达。
取模运算:由于路径数可能非常大,需要在每次累加路径数时对 MOD(这里是 10^9 + 7)取模,以避免整数溢出。
返回结果:最终返回 dp[n][m],即从起点 (1,1) 到达终点 (n,m) 的所有可能路径数。
实现步骤:
1.创建一个二维数组 dp 并初始化。
2.遍历迷宫,根据障碍和位置关系更新 dp 数组。
3.对每个位置进行状态转移,计算路径数。
4.在必要时进行取模运算。
5.返回最终结果。
展开
评论