【Leetcode长征系列】Unique Paths II
来源:互联网 发布:花呗可以淘宝买东西吗 编辑:程序博客网 时间:2024/04/30 02:07
原题:
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 1
and 0
respectively 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.
思路:一开始的想法太复杂了,想的是先遍历一遍如果遇到为1则置为INT_MIN,之后在扫矩阵的时候遇到INT_MIN就忽略加0;但其实只需要遍历一遍就够了,在遇到1的时候置0即可。还有问题就是,if语句的分情况要完整,不然很容易出问题。
代码:
class Solution {public: int uniquePathsWithObstacles(vector<vector<int> > &obstacleGrid) { for (int i = 0; i<obstacleGrid.size() ; i++){ for(int j = 0; j<obstacleGrid[0].size(); j++){ if(i==0 && j==0){ if(obstacleGrid[0][0]==1) obstacleGrid[0][0] = 0; else obstacleGrid[0][0] = 1; } else if(i==0 && j!=0) { if(obstacleGrid[0][j]==1) obstacleGrid[0][j] = 0; else obstacleGrid[0][j] = obstacleGrid[0][j-1]; } else if(j==0 && i!=0) { if(obstacleGrid[i][0]==1) obstacleGrid[i][0] = 0; else obstacleGrid[i][0] = obstacleGrid[i-1][0]; } else { if(obstacleGrid[i][j]==1) obstacleGrid[i][j] = 0; else obstacleGrid[i][j] = obstacleGrid[i-1][j]+obstacleGrid[i][j-1]; } } } return obstacleGrid[obstacleGrid.size()-1][obstacleGrid[0].size()-1]; }};AC。
0 0
- 【Leetcode长征系列】Unique Paths II
- 【Leetcode长征系列】Unique Paths
- leetCode系列----Unique Paths II
- 【Leetcode长征系列】Unique Binary Search Trees II
- [leetcode刷题系列]Unique Paths II
- LeetCode: Unique Paths II
- [Leetcode] Unique Paths II
- LeetCode : Unique Paths II
- [LeetCode] Unique Paths II
- [LeetCode]Unique Paths II
- [leetcode]Unique Paths II
- LeetCode-Unique Paths II
- [leetcode] Unique Paths II
- LeetCode - Unique Paths II
- LeetCode:Unique Paths II
- 【LeetCode】Unique Paths II
- leetcode Unique Paths II
- LeetCode Unique Paths II
- maven建spring mvc 项目访问不到uri 解决:
- 不使用opencv manager运行Android上的opencv程序
- U盘格式化后容量变小
- Android LOG标签自定义
- 编写程序从1到1000000写到一个文件中
- 【Leetcode长征系列】Unique Paths II
- UVa 12412 A Typical Homework(学生信息管理系统)
- Mat 转为 IplImage
- leetcode Word Break & Word Break ||
- 多线程端口扫描器
- android右上方不显示3个点的菜单的解决方法
- C语言中sscanf 的用法
- 解密:如何构建Java开发环境(第三篇)
- Java类的大括号外面还可以加分号