当前位置: 首页 > news >正文

代码随想录算法训练营第三十八天| 动态规划02

62. 不同路径

本题大家掌握动态规划的方法就可以。 数论方法 有点非主流,很难想到。

代码随想录

视频讲解:动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili

注意点:

1. dp表示的是从原点到坐标点的路径有几条

2. 递推公式dp[i][j]=dp[i-1][j]+dp[i][j-1]

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        dp=[[0]*n for _ in range(m)]
        for i in range(m):
            dp[i][0]=1
        for i in range(n):
            dp[0][i]=1
        for i in range(1,m):
            for j in range(1,n):
                dp[i][j]=dp[i-1][j]+dp[i][j-1]
        return dp[m-1][n-1]

63. 不同路径II

代码随想录

视频讲解:动态规划,这次遇到障碍了| LeetCode:63. 不同路径 II_哔哩哔哩_bilibili

在上一题的基础上做改动:

1. 如果出发点和目标点有障碍物则返回0

2. 初始化时,如果当前格有障碍物,则后续行/列的dp值均为0

class Solution:
    def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
        m=len(obstacleGrid)
        n=len(obstacleGrid[0])
        if obstacleGrid[0][0]==1 or obstacleGrid[m-1][n-1]==1:
            return 0
        dp=[[0]*n for _ in range(m)]
        dp[0][0]=1
        for i in range(1,m):
            dp[i][0]=dp[i-1][0] if obstacleGrid[i][0]==0 else 0
        for j in range(1,n):
            dp[0][j]=dp[0][j-1] if obstacleGrid[0][j]==0 else 0
        for i in range(1,m):
            for j in range(1,n):
                if obstacleGrid[i][j]==0:
                    dp[i][j]=dp[i-1][j]+dp[i][j-1]
        return dp[m-1][n-1]

相关文章:

  • HBase高级技巧:解锁更强大的数据处理能力
  • 浅说树形dp
  • Dubbo 集群策略:负载均衡与容错机制
  • 非侵入式观测进程里的某个线程的tls数据
  • 141,【1】buuctf web [SUCTF 2019]EasyWeb
  • 【C++干货分享】集合 位运算
  • AI-TRANS标准草案框架解析
  • STL中list的模拟实现
  • 145,【5】 buuctf web [GWCTF 2019]mypassword
  • 分布式 NewSQL 数据库(TiDB)
  • 基于大数据的北京市天气数据分析系统的设计与实现
  • 【C++】31.C++11​(3)
  • ShenNiusModularity项目源码学习(8:数据库操作)
  • unity学习40:导入模型的 Animations文件夹内容,动画属性和修改动画文件
  • C# Task 学习记录
  • 3、树莓派5 安装VNC查看器 开启VNC服务器
  • linu软件编程——IO
  • 2月15日星期六今日早报简报微语报早读
  • React - 高阶函数-函数柯里化
  • 2015-2024年上市公司商道融绿esg评级数据
  • 北外滩集团21.6亿元摘上海虹口地块,为《酱园弄》取景地
  • 一企业采购国产化肥冒充“挪威化肥”:7人被抓获
  • 中信银行:拟出资100亿元全资设立信银金融资产投资有限公司
  • 国家发改委:目前有的核电项目民间资本参股比例已经达到20%
  • 福特汽车撤回业绩指引,警告关税或造成15亿美元利润损失
  • 人民日报评论:莫让“胖东来们”陷入“棒杀”“捧杀”泥潭