• 063 Unique Paths II 不同路径 II


    这是“不同路径” 的进阶问题:
    现在考虑网格中有障碍物。那样将会有多少条不同的路径从左上角到右下角?
    网格中的障碍物和空位置分别用 1 和 0 来表示。
    例如,
    如下所示在 3x3 的网格中有一个障碍物。
    [
      [0,0,0],
      [0,1,0],
      [0,0,0]
    ]
    一共有 2 条不同的路径从左上角到右下角。
    注意: m 和 n 的值均不超过 100。
    详见:https://leetcode.com/problems/unique-paths-ii/description/

    Java实现:

    参考:https://www.cnblogs.com/springfor/p/3886644.html

    class Solution {
        public int uniquePathsWithObstacles(int[][] obstacleGrid) {  
            int m = obstacleGrid.length;  
            int n = obstacleGrid[0].length;  
            
            if(m==0||n == 0){
                return 0;
            }
            
            if(obstacleGrid[0][0] == 1 || obstacleGrid[m-1][n-1] == 1){
                return 0;
            }   
            int[][] dp = new int[m][n]; 
            
            dp[0][0] = 1;  
            for(int i = 1; i < n; i++){  
                if(obstacleGrid[0][i] == 1){
                    dp[0][i] = 0; 
                }else{
                    dp[0][i] = dp[0][i-1];
                }   
            }  
            
            for(int i = 1; i < m; i++){  
                if(obstacleGrid[i][0] == 1){
                    dp[i][0] = 0;
                }else{
                    dp[i][0] = dp[i-1][0]; 
                }  
            }  
            
            for(int i = 1; i < m; i++){  
                for(int j = 1; j < n; j++){  
                    if(obstacleGrid[i][j] == 1){
                        dp[i][j] = 0;  
                    }else{
                        dp[i][j] = dp[i][j-1] + dp[i-1][j]; 
                    }   
                }  
            }  
            return dp[m-1][n-1];  
        }
    }
    

    参考:https://www.cnblogs.com/grandyang/p/4353680.html

  • 相关阅读:
    HTML的基础
    样式表
    页面布局
    for 循环
    函数
    数组
    样式属性
    css选择器参考手册
    样式表格及选择器
    表单
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8707178.html
Copyright © 2020-2023  润新知