代码随想录 -- 动态规划 -- 不同路径 II

63. 不同路径 II - 力扣(LeetCode)

思路:

dp[i][j]含义:走到第(i,j)个格子有多少种方法。

递推公式:

  • 当网格中有障碍物时:此路不通,continue;
  • 当网格中没有障碍物时:dp[i][j]=dp[i-1][j]+dp[i][j-1]。

初始化:(一开始整个dp数组都初始化为0)

针对第一行第一列:

  • 如果没有遇到障碍物,初始化为1;
  • 如果遇到障碍物,直接break。

遍历顺序:从上到下,从左到右

python 复制代码
class Solution(object):
    def uniquePathsWithObstacles(self, obstacleGrid):
        n=len(obstacleGrid)
        m=len(obstacleGrid[0])
        if obstacleGrid[0][0]==1 or obstacleGrid[n-1][m-1]==1:return 0
        dp=[[0 for _ in range(m)] for _ in range(n)]
        for i in range(n):
            if obstacleGrid[i][0]==0:
                dp[i][0]=1
            else:
                break
        for j in range(m):
            if obstacleGrid[0][j]==0:
                dp[0][j]=1
            else:
                break
        for i in range(1,n):
            for j in range(1,m):
                if obstacleGrid[i][j]==1:
                    continue
                else:
                    dp[i][j]=dp[i-1][j]+dp[i][j-1]
        return dp[n-1][m-1]
相关推荐
落羽凉笙1 小时前
Python学习笔记(3)|数据类型、变量与运算符:夯实基础,从入门到避坑(附图解+代码)
笔记·python·学习
Quintus五等升1 小时前
深度学习①|线性回归的实现
人工智能·python·深度学习·学习·机器学习·回归·线性回归
ytttr8731 小时前
隐马尔可夫模型(HMM)MATLAB实现范例
开发语言·算法·matlab
天远Date Lab1 小时前
Python实战:对接天远数据手机号码归属地API,实现精准用户分群与本地化运营
大数据·开发语言·python
哈里谢顿2 小时前
Python异常链:谁才是罪魁祸首?一探"The above exception"的时间顺序
python
AlenTech2 小时前
160. 相交链表 - 力扣(LeetCode)
数据结构·leetcode·链表
点云SLAM2 小时前
凸优化(Convex Optimization)理论(1)
人工智能·算法·slam·数学原理·凸优化·数值优化理论·机器人应用
哈里谢顿2 小时前
验证 list() 会调用 `__len__` 方法的深度解析
python·django
会周易的程序员2 小时前
多模态AI 基于工业级编译技术的PLC数据结构解析与映射工具
数据结构·c++·人工智能·单例模式·信息可视化·架构
jz_ddk3 小时前
[学习] 卫星导航的码相位与载波相位计算
学习·算法·gps·gnss·北斗