参考链接
http://www.cnblogs.com/remlostime/archive/2012/11/15/2772263.html
题目描述
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?
Note: m and n will be at most 100.
题目分析
动态规划
开一个f[m][n]的数组,f[i][j] = f[i-1][j] + f[i][j-1],空间时间复杂度O(m*n)。用滚动数组空间复杂度可降为O(n)
代码示例
/*
编译环境CFree 5.0
博客地址:http://blog.youkuaiyun.com/Snowwolf_Yang
*/
#include
#include
using namespace std;
#if 0//超时
class Solution {
public:
int uniquePaths(int m, int n) {
int sum = 0;
uniquePathsCore(m,n,0,0,sum);
return sum;
}
void uniquePathsCore(int m, int n, int i, int j, int &sum)
{
if(i == m-1 && j == n-1)
{
sum++;
//printf("(%d,%d) ",i,j);
//printf("end\n");
return;
}
if(j
/*
编译环境CFree 5.0
博客地址:http://blog.youkuaiyun.com/Snowwolf_Yang
*/
#include
#include
using namespace std;
#if 0//超时
class Solution {
public:
int uniquePaths(int m, int n) {
int sum = 0;
uniquePathsCore(m,n,0,0,sum);
return sum;
}
void uniquePathsCore(int m, int n, int i, int j, int &sum)
{
if(i == m-1 && j == n-1)
{
sum++;
//printf("(%d,%d) ",i,j);
//printf("end\n");
return;
}
if(j
推荐学习C++的资料
C++标准函数库
在线C++API查询
vector使用方法

本文探讨了机器人从网格的左上角到达右下角的不同路径数量的问题,并通过动态规划算法提供了有效的解决方法,包括代码实现和空间优化。
589

被折叠的 条评论
为什么被折叠?



