[leetcode 62]Unique Paths---机器人向左或向下走到右下角的路径数目
2016-03-14 21:49
489 查看
Question:
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).
The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked 'Finish' in the diagram below).
How many possible unique paths are there?
Above is a 3 x 7 grid. How many possible unique paths are there?
分析:
题目中机器人从左上角走到右下角,只能向右走或者向下走。
可以知道,机器人在每个位置都有两种选择:向左或是向右。
在原点位置:如果向左走,则剩下的路径数目 是在走矩阵m*(n-1);如果向下走,则剩下的路径数目是在走矩阵(m-1)*n。
知道了上述规则,可以用递归调用即可,但是太费时间。
如果用path[i][j]表示矩阵为i*j时候的路径数目,则可以保存到m*n为止的所有矩阵路径数目,这样就不用递归调用了。
代码如下:
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).
The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked 'Finish' in the diagram below).
How many possible unique paths are there?
Above is a 3 x 7 grid. How many possible unique paths are there?
分析:
题目中机器人从左上角走到右下角,只能向右走或者向下走。
可以知道,机器人在每个位置都有两种选择:向左或是向右。
在原点位置:如果向左走,则剩下的路径数目 是在走矩阵m*(n-1);如果向下走,则剩下的路径数目是在走矩阵(m-1)*n。
知道了上述规则,可以用递归调用即可,但是太费时间。
如果用path[i][j]表示矩阵为i*j时候的路径数目,则可以保存到m*n为止的所有矩阵路径数目,这样就不用递归调用了。
代码如下:
<span style="font-size:14px;">class Solution { public: int uniquePaths(int m, int n) { int res = 0; if(n <= 0 || m <= 0) return 0; if(n == 1 || m == 1) return 1; // res = uniquePaths(m-1,n) + uniquePaths(m,n-1);暴力法,超时 int path[m] ; for(int i = 0; i < m; ++i){ for(int j = 0; j < n; ++j){ if(i == 0 || j == 0) path[i][j] = 1; else{ path[i][j] = path[i-1][j] + path[i][j-1]; } } } return path[m-1][n-1]; } };</span>
相关文章推荐
- Singular value decomposition
- Singular value decomposition
- 225. Implement Stack using Queues
- 232. Implement Queue using Stacks&225. Implement Stack using Queues
- 改良UIScrollView滚动视图
- UITableView介绍 之 AutoLayout下复杂cell的高度计算
- UI进阶——XML解析与Json解析
- 写的一个UGUI下Image控件做序列帧动画的小工具
- UEFI+GPT安装Windows7系统
- uva1583 Digit Generator && uva1584 Circular Sequence(水)
- 解决“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
- UML建模----时序图(Sequence diagram)
- Error "The form cannot be rendered. This may be due to a misconfiguration......"的解决方案
- iOS设计之 多视图导航栏UINavigationController切换视图的简单设计
- POJ2524——Ubiquitous Religions 并查集基础
- 利用android提高的的insert,query,update,deleteAPI与execSql,rawQuery函数执行原生的插入,查询,更新,删除语
- UIViewController的基本概念与生命周期
- Android 图标上面添加提醒(二)使用开源UI类库 Viewbadger
- uva 11995——I Can Guess the Data Structure!
- poj 2533 Longest Ordered Subsequence 最长递增子序列