[Leetcode] Unique Paths II (Java)
2014-01-09 09:55
369 查看
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 as
in the grid.
For example,
There is one obstacle in the middle of a 3x3 grid as illustrated below.
The total number of unique paths is
Note: m and n will be at most 100.
DP:
1)若obstacleGrid[i][j]=1,则dp[i][j]=0;
2)若obstacleGrid[i][j]=0,则dp[i][j]=d[i-1][j]+dp[i][j-1];
Now consider if some obstacles are added to the grids. How many unique paths would there be?
An obstacle and empty space is marked as
1and
0respectively
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 is
2.
Note: m and n will be at most 100.
DP:
1)若obstacleGrid[i][j]=1,则dp[i][j]=0;
2)若obstacleGrid[i][j]=0,则dp[i][j]=d[i-1][j]+dp[i][j-1];
public class Solution { public int uniquePathsWithObstacles(int[][] obstacleGrid) { if(obstacleGrid.length<1) return 0; int dp[][]=new int[obstacleGrid.length][obstacleGrid[0].length]; dp[0][0]=obstacleGrid[0][0]==1?0:1; for(int i=1;i<obstacleGrid.length;i++){ if(obstacleGrid[i][0]==1) dp[i][0]=0; else dp[i][0]=dp[i-1][0]; } for(int j=1;j<obstacleGrid[0].length;j++){ if(obstacleGrid[0][j]==1) dp[0][j]=0; else dp[0][j]=dp[0][j-1]; } for(int i=1;i<obstacleGrid.length;i++){ for(int j=1;j<obstacleGrid[0].length;j++){ if(obstacleGrid[i][j]==1) dp[i][j]=0; else { dp[i][j]=dp[i-1][j]+dp[i][j-1]; } } } return dp[obstacleGrid.length-1][obstacleGrid[0].length-1]; } }
相关文章推荐
- EditText
- [Leetcode] Unique Paths (Java)
- Unique Binary Search Trees——唯一的二叉搜索树
- 基于ui automation的计算器测试例子
- 20140109早读课:设计还没完成就被吐槽指手划脚,怎么办?
- 无正文:UI库设计的核心是结构设计 + 消息机制设计
- 解决ntp的错误 no server suitable for synchronization found
- [整理]在命令行执行 UIAutomation
- URAL 1098 Questions 约瑟夫环
- URAL 1098 Questions 约瑟夫环
- 从uibutton的点击谈谈ios的响应事件
- iOS学习笔记(1)— UIView 渲染和内容管理
- iOS 3D UI---CALayer的transform扩展
- DelayQueue
- 添加一个能够自适应字数的UILabel对象到ScrollView
- 顺序容器vector、list、deque(整理中)
- make and build package, copy files to dest dir
- Ubuntu Howto Fix Repository Signature Verification Issues
- 1028 Hanoi Tower Sequence 高精度除 和取模 pair<string,int>
- 自定义UITabBar