LeetCode-62. 不同路径
难度:中等
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?
class Solution {
public:
//递归超时 时间复杂度2^(m+n-1)
// int dfs(int i, int j, int m, int n) {
// if(i>=m || j>=n)return 0;
// if(i == m-1 && j == n-1)return 1;
// return dfs(i+1,j,m,n)+dfs(i,j+1,m,n);
// }
int uniquePaths(int m, int n) {
//return dfs(0,0,m,n);
int arr[n];
int i,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(i==0|| j==0){
arr[j] = 1;
}
else{
arr[j] = arr[j]+arr[j-1];
}
}
}
return arr[n-1];
}
};
执行结果:
通过
执行用时:
0 ms, 在所有 C++ 提交中击败了100.00%的用户
内存消耗:
5.7 MB, 在所有 C++ 提交中击败了97.22%的用户
通过测试用例:
63 / 63