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

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

相关推荐
Howrun7772 分钟前
C++ 线程互斥锁 lock_guard
c++·算法
小李独爱秋2 分钟前
计算机网络经典问题透视:试比较先进先出排队(FIFO)、公平排队(FQ)和加权公平排队(WFQ)的优缺点
服务器·计算机网络·算法·web安全·信息与通信·队列
永远都不秃头的程序员(互关)8 分钟前
【K-Means深度探索(十)】进阶思考:K-Medoids与Fuzzy C-Means,K-Means的“亲戚”们!
算法·机器学习·kmeans
咕噜企业分发小米9 分钟前
豆包大模型在药物研发中的知识检索效率如何?
java·开发语言·数据库
Remember_9939 分钟前
【LeetCode精选算法】二分查找专题一
java·数据结构·算法·spring·leetcode·哈希算法
BlockChain88812 分钟前
Web3 后端面试专用版
java·面试·职场和发展·go·web3
BlockChain88812 分钟前
30+ 技术人转型 Web3 / AI
java·人工智能·go·web3
刘某某.12 分钟前
大模型数据传输3 种方式对比
算法
Kratzdisteln16 分钟前
【1902】0120-3 Dify变量引用只能引用一层
android·java·javascript
wen__xvn17 分钟前
基础算法集训第03天:递推
算法