unique PathsII:带障碍寻径
来源:互联网 发布:上海乐蜀网络 编辑:程序博客网 时间:2024/05/18 01:41
Follow up for "Unique Paths":
Now consider if some obstacles are added to the grids. How many unique paths would there be?
An obstacle and empty space is marked as1and0respectively in the grid.
For example,
There is one obstacle in the middle of a 3x3 grid as illustrated below.
[ [0,0,0], [0,1,0], [0,0,0]]
The total number of unique paths is2.
Note: m and n will be at most 100.
思路:这题不用转载了,因为做完寻径1后,此题和它是一个思路,仍用动态规划思路,当遇到障碍时直接让词典可走路径数为零。
注意,由于可能从开始位置就不能走,所以一维数组第一位也要参与更新,即不在默认人为一定存在以条沿左下边路直奔终点的路径!(这个位置真的好容易错啊)
最下面是递归求解,时间超时。
public int uniquePathsWithObstacles(int[][] obstacleGrid) { int m = obstacleGrid.length; if(m==0) return 0; int n = obstacleGrid[0].length; return dp(obstacleGrid,m,n); } public int dp(int[][] o,int m,int n){ int[] d = new int[n]; if(o[m-1][n-1]!=1) d[0] = 1; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ if(o[i][j]==1){ d[j]=0; }else{ if(j>0){ d[j]+=d[j-1]; } } } } return d[n-1]; } public int dfs(int[][] o,int x,int y,int m,int n){ System.out.println("x,y:"+x+y); if(x>m-1||y>n-1){ return 0; } if(o[x][y]==1) return 0; if(x==m-1&&y==n-1){ return 1; } int r1=dfs(o,x+1,y,m,n); int r2=dfs(o,x,y+1,m,n); return r1+r2; }
阅读全文
0 0
- unique PathsII:带障碍寻径
- [LeetCode]-Unique PathsII 有障碍的矩阵中求两点间所有路线条数
- leetcode #63 Unique PathsII
- Leetcode-Unique Paths&Unique PathsII
- Unique Paths:寻径问题
- poj 1315 dfs(带障碍的类八皇后)
- Unique Paths II 带有障碍的网格中起点到终点的个数
- Unique Paths II 求在矩阵里从左上走到右下的总方法数(有障碍)@LeetCode
- Vertica修改带UNIQUE约束字段的长度
- unique
- unique
- unique()
- unique
- unique()
- 障碍器
- 信息无障碍专业术语---障碍
- 信息无障碍专业术语---信息无障碍
- POJ 1679 The Unique MST(kuangbin带你飞 专题六:最小生成树)
- Elasticsearch中文搜索环境搭建
- Unity Vector3.Lerp
- 单利模式
- Mybatis与Hibernate的详细对比
- HDU1856 More is better
- unique PathsII:带障碍寻径
- Maven使用tomcat8-maven-plugin插件
- react native学习笔记13——FlatList上拉加载
- mark first blood
- Docker中使用Tomcat并部署war工程
- Recycle点击事件
- 开源SQL on Storm解决方案Pike
- poj1308、HDU1325 、Is It A Tree
- vue:command not found