#include<vector>
using namespace std;
// class Solution { //深度遍历法
// public:
// int uniquePaths(int m, int n) {
// vector<vector<int>> r(m, vector<int>(n,1));
// r[m-1][n-1]=-1;
// dfs(r, 0, 0);
// return res;
// }
// void dfs(vector<vector<int>> r, int i, int j)
// {
// if(i<r.size() && j<r[0].size() && r[i][j]==-1)
// {
// res++;
// return;
// }
// if(i+1<r.size() && j<r[0].size()) dfs(r, i+1, j);
// if(i<r.size() && j+1<r[0].size()) dfs(r, i, j+1);
// }
// int res=0;
// };
class Solution {
public:
int uniquePaths(int m, int n) {
vector<vector<int>> r(m, vector<int>(n, 1));
int row = r.size();
if (row == 1) return 1;
int col = r[0].size();
if (col == 1) return 1;
for (int i = 0; i < row; i++) //行边界赋0
{
r[i][0] = 1;
}
for (int j = 0; j < col; j++) //列边界赋0
{
r[0][j] = 1;
}
for (int i = 1; i < row; i++) //填充后面的元素
{
for (int j = 1; j < col; j++)
{
r[i][j] = r[i - 1][j] + r[i][j - 1];
}
}
return r[m - 1][n - 1];
}
};
62.不同路径
最新推荐文章于 2024-04-18 21:43:50 发布