zoukankan      html  css  js  c++  java
  • unique-paths-II

    继续思考题目"Unique Paths":
    如果在图中加入了一些障碍,有多少不同的路径?
    分别用0和1代表空区域和障碍
    例如
    下图表示有一个障碍在3*3的图中央。
    [↵  [0,0,0],↵  [0,1,0],↵  [0,0,0]↵]
    有2条不同的路径
    备注:m和n不超过100.
     
    二维数组动态规划解法:
     1 import java.util.*;
     2 
     3 
     4 public class Solution {
     5     /**
     6      * 
     7      * @param obstacleGrid int整型二维数组 
     8      * @return int整型
     9      */
    10     public int uniquePathsWithObstacles (int[][] obstacleGrid) {
    11         int m=obstacleGrid.length;
    12         int n=obstacleGrid[0].length;
    13         int[][] dp=new int[m][n];
    14         boolean flag=true;
    15         for(int i=0;i<m;i++){
    16             if(obstacleGrid[i][0]==0&&flag){
    17                 dp[i][0]=1;
    18             }else{
    19                 flag=false;
    20                 break;
    21             }
    22         }
    23         flag=true;
    24         for(int i=0;i<n;i++){
    25             if(obstacleGrid[0][i]==0&&flag){
    26                 dp[0][i]=1;
    27             }else{
    28                 flag=false;
    29                 break;
    30             }
    31         }
    32         for(int i=1;i<m;i++){
    33             for(int j=1;j<n;j++){
    34                 if(obstacleGrid[i][j]==0){
    35                     dp[i][j]=dp[i-1][j]+dp[i][j-1];
    36                 }
    37             }
    38         }
    39         return dp[m - 1][n - 1];
    40     }
    41 }
  • 相关阅读:
    tar.gz文件
    Ruby Symbol
    Ruby表达式
    Linux相关命令
    Ruby file
    Tomcat优化
    修改Linux文件的所属用户和组
    Ruby String
    Ruby Range
    HTML5开源专业图像处理引擎——AlloyImage(简称AI)
  • 原文地址:https://www.cnblogs.com/Susie2world/p/13372678.html
Copyright © 2011-2022 走看看