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

代码随想录算法训练营第三十四天-动态规划-63. 不同路径II

  • 本题与上一题区别不大
  • 但由于存在障碍格,导致在计算路径值时,要多考虑一些情况
    • 比如,障碍格在开始与结束位置时,路径直接返回0
    • 障碍格在初始的首行与首列时,设置初始值要不同
    • 在计算dp值时,要先判断当前格是不是障碍格
class Solution {
public:
    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
        int m = obstacleGrid.size();
        int n = obstacleGrid[0].size();
        if (obstacleGrid[0][0] || obstacleGrid[m - 1][n - 1]) {
            return 0;
        }
        int dp[m][n];
        memset(dp, 0, sizeof(dp));
        for (int i = 0; i < n && obstacleGrid[0][i] != 1; ++i) {
            dp[0][i] = 1;
        }
        for (int i = 0; i < m && obstacleGrid[i][0] != 1; ++i) {
            dp[i][0] = 1;
        }
        for (int i = 1; i < m; ++i) {
            for (int j = 1; j < n; ++j) {
                if (obstacleGrid[i][j]) {
                    continue;
                }
                dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
            }
        }
        return dp[m - 1][n - 1];
    }
};
  • 在运行代码时报了一个错,在17和18行时,出发位置没有设置从1开始,会导致22行出现数组越界情况
  • 汇总

http://www.kler.cn/a/504890.html

相关文章:

  • HTTP1.0/1.1/2.0/3.0 的区别?
  • Boost Asio TCP异步服务端和客户端
  • Cesium中的CustomDataSource 详解
  • 活动预告 | CCF开源发展委员会开源供应链安全技术研讨会(2025第一期)——“大模型时代的开源供应链安全风控技术”...
  • 企业服务-团队协作相关平台极简介绍
  • 【AIGC-ChatGPT进阶提示词指令】智慧母婴:打造基于成长树的儿童发展引导系统
  • vue运用uniapp框架开发企业微信小程序中常用的一些基础方法
  • C#,入门教程(27)——应用程序(Application)的基础知识
  • JavaScript:模版字符串
  • scons通用构建_生成方法Command
  • 向量数据库如何助力Text2SQL处理高基数类别数据
  • 更新用户密码功能
  • 解决nginx: [emerg] unknown directive “stream“ in /etc/nginx/nginx.conf问题 --九五小庞
  • LeetCode | 解锁数组与字符串的秘密:经典题型详解与高效解法
  • 20250113面试鸭特训营第21天
  • STLG_01_12_程序设计C语言 - 联合体和枚举类型
  • 【AIGC-ChatGPT进阶提示词指令】智慧母婴:打造基于成长树的儿童发展引导系统
  • 【网络云SRE运维开发】2025第3周-每日【2025/01/14】小测-【第13章ospf路由协议】理论和实操解析
  • PPPLib源码阅读
  • 「蓝桥杯题解」数字接龙
  • 石化煤矿智能化转型“硬通货”,遨游防爆手机如何面面俱到?
  • Vue2+OpenLayers实现车辆开始、暂停、重置行驶轨迹动画(提供Gitee源码)
  • UART 串口的全双工模式与 SPI 的全双工模式的区别
  • 达梦数据库数据迁移(mysql迁移到达梦)
  • 4种革新性AI Agent工作流设计模式全解析
  • 力扣cf补题-1【算法学习day.94】