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

代码随想录补打卡 62不同路径 63 不同路径2

代码如下

func uniquePaths(m int, n int) int {

             dp := make([][]int,m)    //定义一个二维数组

             for i := 0 ; i < m ; i++ {  //遍历这个二维数组的每个元素,并将每个元素都定义为一个一维数组

                 dp[i] = make([]int,n)   //这样就生成了图中的一个二维网格

                 dp[i][0] = 1   //并且将第一列的每个元素的值赋为1 i代表元素的横坐标j代表纵坐标

             }   

             for j := 0 ; j < n ; j++ {   //将第一行赋值

                 dp[0][j] = 1 

             }

             for i := 1 ; i < m ; i++ {  遍历整个数组,从1,1开始

                 for j := 1 ; j < n ; j++ {

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

                 }

             }

             return dp[m-1][n-1]

}

不同路径2 

代码如下 

func uniquePathsWithObstacles(obstacleGrid [][]int) int {

             m := len(obstacleGrid)  //二维数组的行数为障碍物的元素个数

             n := len(obstacleGrid[0]) //二维数组的列数为障碍物每个元素里的个数,即一维数组元素的个数

             dp := make([][]int,m)   //  和之前不同路径的思路一样,构造二维数组的网格

             for i := 0 ; i < m  ; i++ {

                 dp[i] = make([]int,n)

                

             }

             for i := 0 ; i < m && obstacleGrid[i][0] == 0 ; i++ { //对第一列和第一行进行初始化的时候,如果出现障碍物,则之后的元素不需要初始化

                    dp[i][0] = 1 

             }

             for j := 0 ; j < n && obstacleGrid[0][j] == 0 ; j++ {  

                 dp[0][j] = 1 

             }

             for i := 1 ; i < m  ; i++ {

                 for j := 1 ; j < n ; j++ {

                    if obstacleGrid[i][j] != 1 {  //如果没有障碍,则可以进行计算,如果有障碍,那么这一个障碍物的点的值仍为0 

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

                    }

                  

                 }

             }

             return dp[m-1][n-1]

}

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

相关文章:

  • 树的存储和遍历
  • MySQL的ID用完了,怎么办?
  • JSP基于Iptables图形管理工具的设计与实现(源代码+论文)
  • 什么是数据库分片?
  • 软件工程知识点
  • 华为OD机试 - 投篮大赛(Python)
  • 《花雕学AI》讯飞星火认知大模型的特点和优势,与ChatGPT的对比分析
  • 【Python入门】Python的判断语句(if else 语句)
  • (4.28-5.4)【大数据新闻速递】数字中国峰会成功举办;“浙江数据知识产权登记平台”上线;贵州大数据活跃;AI教父从谷歌离职
  • 领域驱动设计(Domain Driven Design)之建立领域模型
  • 有研究员公开了一个解析并提取 Dell PFS BIOS 固件的工具(下)
  • iOS开发系列--Swift语言
  • 【MOMO】高水平期刊目录(持续更新)
  • LVS负载均衡集群--DR模式
  • RabbitMQ --- 死信交换机
  • 如何在个人web项目中使用会话技术(cookiesession)?
  • 创建线索二叉树
  • HNU-操作系统OS-实验Lab2
  • 如何使用HTML和CSS创建有方向感知的按钮
  • java 线程安全
  • 移动硬盘修复后文件丢失恢复方法
  • 直线飙升到10万+star的AutoGpt,有多强?帮我写了个网页!
  • rk3568平台调试typec口实现uvc输出,网络共享等功能
  • java基础知识——26.反射
  • 【容器化】Docker 简介和安装
  • 性能测试场景分析并设计?超细案例讲解,看这篇就够了
  • JAVA9新特性
  • ( 数组和矩阵) 645. 错误的集合 ——【Leetcode每日一题】
  • 2023年全国最新道路运输从业人员精选真题及答案63
  • Kettle安装与使用