Leetcode 63. Unique Paths II
2016-01-23 14:03
381 查看
question:
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
Analysis:
The same with the first question: otherwise, there is obstacles
ublic class Solution {
public int uniquePaths(int[][] obstacleGrid) {
int m = obstacleGrid.length;
int n = obstacleGrid[0].length;
int[][]dp = new int[m]
;
for(int i = 0; i < m; i++){
if(obstacleGrid[i][0] == 1)
dp[i][0] = 0;
else{
dp[i][0] = 1;
}
}
for(int i = 0; i < n; i++){
if(obstacleGrid[i][0] == 1)
dp[0][i] = 0;
else{
dp[0][i] = 1;
}
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-1][j] + dp[i][j-1];
}
}
}
return dp[m-1][n-1];
}
}
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
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.
Analysis:
The same with the first question: otherwise, there is obstacles
ublic class Solution {
public int uniquePaths(int[][] obstacleGrid) {
int m = obstacleGrid.length;
int n = obstacleGrid[0].length;
int[][]dp = new int[m]
;
for(int i = 0; i < m; i++){
if(obstacleGrid[i][0] == 1)
dp[i][0] = 0;
else{
dp[i][0] = 1;
}
}
for(int i = 0; i < n; i++){
if(obstacleGrid[i][0] == 1)
dp[0][i] = 0;
else{
dp[0][i] = 1;
}
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-1][j] + dp[i][j-1];
}
}
}
return dp[m-1][n-1];
}
}
相关文章推荐
- KeyValueCoding
- 优化UITableViewCell高度计算的那些事(RunLoop)
- LeetCode63. Unique Paths II
- Leetcode 62. Unique Paths
- ios学习之模仿韩寒"one.一个"UI
- iOS_UItableVeiwCell 点击取消高亮状态
- Cannot launch AVD in emulator on Windows: ERROR: x86 emulation currently requires hardware accelerat
- iOS UIView初识
- Android UI性能优化详解
- UI控件
- 231,NSOperation和NSOperationQueue
- [iOS]把16进制(#871f78)颜色转换UIColor
- HDU【2812】Building Block
- android背景设置报错 <item> tag requires a 'drawable' attribute or child tag defining a drawable
- warining:incompatible implicit declaration of built-in function 警告的解决方法
- ElasticSearch学习问题记录——Invalid shift value in prefixCoded bytes (is encoded value really an INT?)
- Number Sequence
- 【转】第一个MiniGUI程序:模仿QQ界面
- UITabelViewCell自定义(zhuan)
- iOS UITableView全面解析 (转载)