代码随想录——不同路径Ⅱ(Leetcode 63)

题目链接

动态规划

java 复制代码
class Solution {
    public int uniquePathsWithObstacles(int[][] obstacleGrid) {
        int m = obstacleGrid.length;
        int n = obstacleGrid[0].length;
        int[][] dp = new int[m][n];
        // 遇到障碍则从(0,0)到达
        for(int i = 0; i < m && obstacleGrid[i][0] == 0; i++){
            dp[i][0] = 1;
        }
        for(int j = 0; j < n && obstacleGrid[0][j] == 0; j++){
            dp[0][j] = 1;
        }
        for(int i = 1; i < m; i++){
            for(int j = 1; j < n; j++){
            	// 如果没有障碍则dp公式正确执行
                if(obstacleGrid[i][j] == 0){
                    dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
                }
            }
        }
        return dp[m - 1][n - 1];
    }
}

本题目是上一篇博客不同路径这道题目的升级版,整体动态规划思路相同,本题多了障碍这一条件约束。

相关推荐
不急不躁1231 分钟前
Android16 跳过GMS测试项
android·java
CoovallyAIHub3 分钟前
200亿美元“反向收购雇佣”?老黄天价应对谷歌TPU压力
深度学习·算法·计算机视觉
oioihoii4 分钟前
C++多线程中join与detach机制深度解析
java·jvm·c++
落尘2985 分钟前
Catlass 模板库调试调优经验与踩坑记录
算法
雨中飘荡的记忆5 分钟前
深入理解 Guava EventBus:让你的系统解耦更优雅
java·后端
ytttr8735 分钟前
叠前同步反演纵波速度、横波速度和密度三参数
算法
uup6 分钟前
方法参数的 “值传递骗局”:修改引用参数为何不改变原对象?
java
TAEHENGV8 分钟前
外观设置模块 Cordova 与 OpenHarmony 混合开发实战
java·运维·服务器
Vic1010110 分钟前
Spring AOP 高级陷阱:为什么 @Before 修改参数是“伪修改“?
java·python·spring
初圣魔门首席弟子14 分钟前
智能指针使用bug
c++·算法