您的位置:首页 > 产品设计 > UI/UE

62. Unique Paths

2016-03-27 19:00 465 查看
先给出两种超时的方法。

//23 12
class Solution {
public:
int uniquePaths(int m, int n) {
if(m==1||n==1) return 1;
int sum=0;
for(int i=1;i<=m;i++)
{
sum+=uniquePaths(i,n-1);
}
return sum;
}
};


//51 9
class Solution {
public:
int uniquePaths(int m, int n) {
if(m==1||n==1) return 1;
if(m==2) return n;
if(n==2) return m;
return uniquePaths(m,n-1)+uniquePaths(m-1,n);
}
};


想了想发现,自顶向下的方法行不通,那就只能是自底向上了。

//OK,ac了 思路很清晰,没什么问题
class Solution {
public:
int uniquePaths(int m, int n) {
int map[100][100]={0};
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
if(i==1) map[i-1][j-1]=1;
else if(i==2) map[i-1][j-1]=j;
else map[i-1][j-1]=map[i-2][j-1]+map[i-1][j-2];
}
return map[m-1][n-1];
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: