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

动态规划探索篇

Leetcode63——不同路径Ⅱ

题目描述:

给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0])。机器人尝试移动到 右下角(即 grid[m - 1][n - 1])。机器人每次只能向下或者向右移动一步。

网格中的障碍物和空位置分别用 1 和 0 来表示。机器人的移动路径中不能包含 任何 有障碍物的方格。

返回机器人能够到达右下角的不同路径数量。

测试用例保证答案小于等于 2 * 109

示例 1:

输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]
输出:2
解释:3x3 网格的正中间有一个障碍物。
从左上角到右下角一共有 2 条不同的路径:
1. 向右 -> 向右 -> 向下 -> 向下
2. 向下 -> 向下 -> 向右 -> 向右

算法思想:

利用动态规划的思想,通过bp[][]二位数组记录每到位置(m,n)时有多少种走法。

算法实现:

int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {//起点有障碍直接返回0if (obstacleGrid[0][0] == 1)return 0;/*bp[m][n]表示到位置m,n有多少种不同的路径*/vector<vector<int>> bp(obstacleGrid.size(),vector<int>(obstacleGrid[0].size(), 1));//bp数组第一行的初始化for (int i = 0; i < obstacleGrid[0].size(); i++) {if (obstacleGrid[0][i] == 1) {while (i < obstacleGrid[0].size()) {bp[0][i++] = 0;}}}//bp数组的第一列初始化for (int i = 0; i < obstacleGrid.size(); i++) {if (obstacleGrid[i][0] == 1) {while (i < obstacleGrid.size()) {bp[i++][0] = 0;}}}//bp数组的计算for (int i = 1; i < obstacleGrid.size(); i++) {for (int j = 1; j < obstacleGrid[0].size(); j++) {if (obstacleGrid[i][j] == 1)bp[i][j] = 0;elsebp[i][j] = bp[i - 1][j] + bp[i][j - 1];}}//终点位置及所求返回return bp[obstacleGrid.size() - 1][obstacleGrid[0].size() - 1];}

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

相关文章:

  • js中多let与var
  • 基于人工智能的搜索和推荐系统
  • 冷钱包与热钱包的差异 | 加密货币存储的安全方案
  • 014:无人机遥控器操作
  • PCL 点云高度归一化
  • 【Effective C++】阅读笔记4
  • 浅谈mysql【8.0】链接字符串
  • BERT,RoBERTa,Ernie的理解
  • 获取 Wind 数据并进行简单的择时分析
  • 小檗碱的酵母代谢工程生物合成-文献精读78
  • 文件指针和写入操作
  • 跨越科技与文化的桥梁——ROSCon China 2024 即将盛大开幕
  • springboot+shiro 权限管理
  • PureMVC在Unity中的使用(含下载链接)
  • 25国考照片处理器使用流程图解❗
  • 一位纯理科生,跨界自学中医,自行组方治好胃病、颈椎病与高血脂症,并在最权威的中国中医药出版社出版壹本专业中医图书!
  • 运动控制 双轮差速模型轨迹规划
  • 使用 Sortable.js 库 实现 Vue3 elementPlus 的 el-table 拖拽排序
  • MySQL索引相关介绍及优化(未完...)
  • 【AI+教育】一些记录@2024.11.04
  • 三维测量与建模笔记 - 2.2 射影几何
  • 论文速读:简化目标检测的无源域适应-有效的自我训练策略和性能洞察(ECCV2024)
  • ros与mqtt相互转换
  • Golang | Leetcode Golang题解之第522题最长特殊序列II
  • 安卓开发之数据库的创建与删除
  • 数据结构:LRUCache
  • shell脚本案例:创建用户和组
  • C++笔试题之实现一个定时器
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-13
  • 快消零售行业的培训创新:构建在线培训知识库