LeetCode---Unique Paths II
2015-10-22 21:09
513 查看
题目大意:给出一个m*n的数组,数组中放置若干个障碍物,机器人从左上角到右下角有多少种路径?
算法思想:
1.如果m或n为0值的话,直接返回0.
2.设置一个val表用来记录机器人从起点到当前位置的方法数,初始时表中元素都置为0。
3.初始化val表的左边界和上边界。如果遇到障碍物则该位置及之后位置都为0,否则为1.
4.遍历障碍物向量,填写val表。val[i][j]=val[i-1][j]+val[i][j-1].
5.返回val[m-1][n-1].
代码如下:
算法思想:
1.如果m或n为0值的话,直接返回0.
2.设置一个val表用来记录机器人从起点到当前位置的方法数,初始时表中元素都置为0。
3.初始化val表的左边界和上边界。如果遇到障碍物则该位置及之后位置都为0,否则为1.
4.遍历障碍物向量,填写val表。val[i][j]=val[i-1][j]+val[i][j-1].
5.返回val[m-1][n-1].
代码如下:
class Solution { public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int m=obstacleGrid.size(); if(m==0) return 0; int n=obstacleGrid[0].size(); if(n==0) return 0; int val[m] ; memset(val,0,sizeof(val)); for(int i=0;i<m;++i){ if(obstacleGrid[i][0]==0) val[i][0]=1; else break; } for(int i=0;i<n;++i){ if(obstacleGrid[0][i]==0) val[0][i]=1; else break; } for(int i=1;i<m;++i){ for(int j=1;j<n;++j){ if(obstacleGrid[i][j]) continue; else val[i][j]=val[i-1][j]+val[i][j-1]; } } return val[m-1][n-1]; } };
相关文章推荐
- UIControl控件的综合使用
- iOS开发UI篇—模仿ipad版QQ空间登录界面
- iOS开发UI篇—iPad开发中得modal介绍
- iOS开发UI篇—ipad项目 popoverController使用注意
- iOS开发UI篇—ipad 项目 popoverController简单介绍
- 什么是Coded UI
- hdu1711Number Sequence kmp模板题
- Detecting iPhone 6/6+ screen sizes in point values
- ios8中的UIScreen
- iOS开发UI篇—iPad和iPhone开发的比较
- UITableView
- apue第三版 在信号处理程序中调用不可再入函数 的例子遇到的问题
- iOS开发7-KVO(Key-Value Observer)键值观察
- iOS开发拓展篇—UIDynamic(捕捉行为)
- [Leetcode]Unique Paths II
- iOS开发拓展篇—UIDynamic(重力行为+碰撞检测)
- Recruit Coupon Purchase Winner's Interview: 2nd place, Halla Yang
- iOS开发拓展篇—UIDynamic(简单介绍)
- iOS开发UI篇—无限轮播(功能完善)
- iOS开发UI篇—无限轮播(循环展示)