码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 代码随想录算法训练营第三十九天 |● 62.不同路径 ● 63. 不同路径 II


    题目链接:62.不同路径

    代码随想录

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

    因为只能向右或则向下走,所以到第i,j位置有dp[i][j]的方法数等于 dp[i - 1] 的方法数加上 dp[i][j - 1]方法数;

    我们要知道动态规划的五部曲;

    1,确定dp数组的含义,下标的含义;

    2,确定递推公式;

    3,确定dp数组如何初始化;

    4,确定遍历顺序;

    5,打印dp数组(用来debug)

    1,到第i,j位置有dp[i][j]的方法

    2,dp[i][j] = dp[i - 1] + dp[i][j - 1];

    3,dp数组初始化dp[0][j] = 1,dp[i][0] = 1;

    4,从上向下,从左向右遍历;

    5,打印dp数组,可以用来debug

    1. class Solution {
    2. public int uniquePaths(int m, int n) {
    3. int[][] dp = new int[m][n];
    4. for(int i = 0; i < m; i++) dp[i][0] = 1;
    5. for(int i = 0; i < n; i++) dp[0][i] = 1;
    6. for(int i = 1; i < m; i++) {
    7. for(int j = 1; j < n; j++)
    8. dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
    9. }
    10. return dp[m - 1][n - 1];
    11. }
    12. }

    题目链接:63. 不同路径 II 

    代码随想录

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

    看完代码随想录之后的想法:

    我们要知道动态规划的五部曲;

    1,确定dp数组的含义,下标的含义;

    2,确定递推公式;

    3,确定dp数组如何初始化;

    4,确定遍历顺序;

    5,打印dp数组(用来debug)

    这道题和上一个几乎一样,当我们遇到障碍的时候我们的dp[i][j] = 0;

    然后在初始化的时候我们遇到障碍之后我们障碍之后需要设置为0;

    1. class Solution {
    2. public int uniquePathsWithObstacles(int[][] obstacleGrid) {
    3. int m = obstacleGrid.length;
    4. int n = obstacleGrid[0].length;
    5. int[][] dp = new int[m][n];
    6. for(int i = 0; i < m && obstacleGrid[i][0] == 0; i++) dp[i][0] = 1;
    7. for(int i = 0; i < n && obstacleGrid[0][i] == 0; i++) dp[0][i] = 1;
    8. for(int i = 1; i < m; i++) {
    9. for(int j = 1; j < n; j++) {
    10. if(obstacleGrid[i][j] == 0)
    11. dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
    12. else
    13. dp[i][j] = 0;
    14. }
    15. }
    16. return dp[m - 1][n - 1];
    17. }
    18. }

    总结:

    昨天晚上没有做什么,今天做了两道动态规划的题,上午背了一下单词,下午去买了一辆自行车;

    呜呜呜没钱了;

  • 相关阅读:
    软考中级(软件设计师)——程序设计语言与语言处理程序基础(3-5分,一般是3分)
    YoloV5-SPD+TensorRT:基于YoloV5-SPD的小目标检测算法训练
    JVM阶段(5)-引用系列
    python多线程获取返回值
    隆云通五要素微气象仪
    【JavaEE】多线程(四)
    【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
    最全的git命令(详细)和对常见git操作流程讲解
    springBoot对接多个mq并且实现延迟队列---未完待续
    2696. Minimum String Length Afte
  • 原文地址:https://blog.csdn.net/qq_63449734/article/details/132636782
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号