[Leetcode 63, Medium] Unique Paths II
2015-07-21 00:22
399 查看
Problem:
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
Analysis:
Solutions:
C++:
Python:
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.
Note: m and n will be at most 100
Analysis:
Solutions:
C++:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int m = obstacleGrid.size(); int n = obstacleGrid[0].size(); if(m == 0 && n == 0) return 0; if(m == 0 || n == 0) { return 1; } vector<vector<int> > num_of_paths; for(int row = 0; row < m; ++row) { vector<int> new_row; for(int col = 0; col < n; ++col) new_row.push_back(1); num_of_paths.push_back(new_row); } for(int i = 0; i < n; ++i) { if(obstacleGrid[0][i] == 1) { for(int j = i; j < n; ++j) num_of_paths[0][j] = 0; break; } } for(int i = 0; i < m; ++i) { if(obstacleGrid[i][0] == 1) { for(int j = i; j < m; ++j) num_of_paths[j][0] = 0; break; } } for(int i = 1; i < m; ++i) { for(int j = 1; j < n; ++j) { if(obstacleGrid[i][j] == 1) num_of_paths[i][j] = 0; else num_of_paths[i][j] = num_of_paths[i - 1][j] + num_of_paths[i][j - 1]; } } return num_of_paths[m - 1][n - 1]; }Java:
Python:
相关文章推荐
- [Leetcode 62, Medium] Unique Paths
- ——JAVASE-GUI图形用户界面
- druid监控配置及sql注入防火墙配置
- iOS开发——UI进阶篇(二)自定义等高cell,xib自定义等高的cell,Autolayout布局子控件,团购案例
- UILabel 个人学习总结(一)
- unix环境高级编程书中实例缺少apue.h头文件解决方法
- rosbuild
- 第十二章、特殊权限SUID等详解
- UIImageView 简介
- 【Leetcode】Implement Queue using Stacks
- 杭电1005Number Sequence
- UIScrollView自动轮播图
- Hadoop 管理工具HUE配置-集成Unix用户和用户组
- UIScrollView实现不全屏分页的小技巧
- Android requestLayout 和 invalidate
- 玩转iOS 9的UIDynamics
- UIbutton系统按键(System)和图片按键(Custom)对比
- 关于TableViewCell 自适应(文字自适应)
- UIButton
- HDU5033 Building(单调栈)