代码随想录——不同路径Ⅱ(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];
    }
}

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

相关推荐
Boop_wu1 天前
[数据结构] 栈 · Stack
数据结构
kk”1 天前
C语言快速排序
数据结构·算法·排序算法
纪元A梦1 天前
贪心算法应用:基因编辑靶点选择问题详解
算法·贪心算法
3壹1 天前
数据结构精讲:栈与队列实战指南
c语言·开发语言·数据结构·c++·算法
bug攻城狮1 天前
Spring Boot Banner
java·spring boot·后端
黑马源码库miui520861 天前
JAVA同城打车小程序APP打车顺风车滴滴车跑腿源码微信小程序打车源码
java·微信·微信小程序·小程序·uni-app
skytier1 天前
Construct内报错和定位解决
算法
MadPrinter1 天前
SpringBoot学习日记 Day11:博客系统核心功能深度开发
java·spring boot·后端·学习·spring·mybatis
淦出一番成就1 天前
Java反序列化接收多种格式日期-JsonDeserialize
java·后端
skytier1 天前
Ascend print数据落盘使用
算法