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

代码随想录算法训练营第39天|● 62.不同路径 ●63. 不同路径 II

不同路径

62. 不同路径 - 力扣(LeetCode)

1.确定dp数组(dp table)以及下标的含义

dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。

2.确定递推公式

p[i][j] = dp[i - 1][j] + dp[i][j - 1]

3.dp数组的初始化

先dp[i][0]一定都是1,因为从(0, 0)的位置到(i, 0)的路径只有一条,那么dp[0][j]也同理

4.遍历顺序

行列从前到后

class Solution {public int uniquePaths(int m, int n) {int[][]dp=new int[m+1][n+1];for (int i = 1; i <=m ; i++) {dp[i][1]=1;}for (int i = 1; i <=n ; i++) {dp[1][i]=1;}for (int i = 2; i <=m ; i++) {for (int j = 2; j <=n ; j++) {dp[i][j]=dp[i-1][j]+dp[i][j-1];}}return dp[m][n];}
}

不同路径II

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

与上题不同的是在初始化的时候要保存障碍物的地方要dp[i][j]==0

class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {
int m=obstacleGrid.length;int n=obstacleGrid[0].length;int [][]dp=new int[m][n];for (int i = 0; i <m&&obstacleGrid[i][0]==0 ; i++) {dp[i][0]=1;}for (int i = 0; i <n&&obstacleGrid[0][i]==0 ; i++) {dp[0][i]=1;}for (int i = 1; i <m ; i++) {for (int j = 1; j <n ; j++) {if(obstacleGrid[i][j]==1){continue;}else {dp[i][j]=dp[i-1][j]+dp[i][j-1];}}}return dp[m-1][n-1];}
}

http://www.lryc.cn/news/375169.html

相关文章:

  • 【DevOps】 什么是容器 - 一种全新的软件部署方式
  • 使用pnpm创建vue3项目
  • 【软件测试】43个功能测试点总结
  • Python — — GPU编程
  • C#中的枚举类-自定义属性
  • 多态深度剖析
  • OSPF被动接口配置(华为)
  • Android --- 异步操作
  • (55)MOS管专题--->(10)MOS管的封装
  • 超高清图像生成新SOTA!清华唐杰教授团队提出Inf-DiT:生成4096图像比UNet节省5倍内存。
  • 网络安全 - DNS劫持原理 + 实验
  • MyBatis的运行原理
  • 算法题解记录29+++全排列(百日筑基)
  • 苹果AI功能,AI训练数据缺乏,SD3推出,MJ6推出新特性
  • 超越中心化:Web3如何塑造未来数字生态
  • 【ic-tool】timegen使用
  • 1:25万基础电子地图(云南版)
  • springboot宠物领养系统-计算机毕业设计源码07863
  • 牛客热题:最长回文子串
  • 如何访问寄存器
  • 苍穹外卖笔记-18-修改密码、bug记录
  • java如何截取字符串
  • 虚拟淘宝-Virtual-Taobao论文解读(AAAI2019)
  • 低代码组件扩展方案在复杂业务场景下的设计与实践
  • 震撼科技界的GPT-4o发布首日即遭“越狱破防”
  • 保护密码安全,探讨密码加盐及其在Go语言中的实现
  • Sqoop学习详细介绍!!
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 生成哈夫曼树(100分) - 三语言AC题解(Python/Java/Cpp)
  • ctfshow web 单身杯
  • 天锐绿盾加密软件,它的适用范围是什么?