个人思路总结:
这道题有两种实现方式,我都讲一下: 1、递归(时间复杂度太高) 太简单了。。。直接上代码(leetcode里面部分测试用例超时了)
class Solution {
public:
int uniquePaths(int m
, int n
) {
return dfs(m
,n
);
}
int dfs(int m
, int n
)
{
if(m
==1||n
==1)
return 1;
int res
= dfs(m
-1,n
)+dfs(m
,n
-1);
return res
;
}
2、动态规划
class Solution {
public:
int uniquePaths(int m
, int n
) {
int dp
[m
][n
];
for(int i
=0;i
<m
;i
++)
{
for(int j
=0;j
<n
;j
++)
{
if(i
==0||j
==0)
dp
[i
][j
] = 1;
else
dp
[i
][j
] = dp
[i
-1][j
]+dp
[i
][j
-1];
}
}
return dp
[m
-1][n
-1];
}
};
转载请注明原文地址: https://yun.8miu.com/read-59039.html