这是一道非常简单的动态规划问题。递推方程也很简单:
f(i,j)=f(i-1,j)+f(i,j-1)。但是由于蛮久没有做动规类的题目,我不加思考地用递归的方法做了出来:
int uniquePaths(int m, int n) {
if (n == 1 || m == 1)
{
return 1;
}
else
{
return uniquePaths(m - 1, n) + uniquePaths(m, n - 1);
}
}
果不其然,Runtime Error,超时了。偷偷地看了一眼别人提交的代码,才想起这道题使用动规是需要用二维数组保存中间计算值的。
还是得好好理解动规呀~~~