62.不同路径
写在前面,小白从零刷题,在解答会写出思路,正确答案,以及所有使用到的语法和知识点
1.dp 5
- 如何想到?
- 有多少种路径,典型的动态规划路径问题
- 解题步骤
- 字问题:求最后的步骤等于上面那一格和左面一格的步骤总数
- 转移方程:f[i][j]=f[i-1][j]+f[i][j-1]
- 初始条件f[0][0]=1,最上面一行和左面一行为1
- 计算顺序是从左到右从上到下符合动态规划计算顺序
class Solution {
public:
int uniquePaths(int m, int n) {
vector<vector<int>>ans(m,vector<int>(n));
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(i==0||j==0){
ans[i][j]=1;
}
else
{
ans[i][j]=ans[i-1][j]+ans[i][j-1];
}
}
}
return ans[m-1][n-1];
}
};
时间复杂度/空间复杂度分析/面试场景如何作答
-
面试官不同要求下的解题方式
-
方法一时间空间复杂度
- 时间复杂度:o(mxn)
- 空间复杂度:o(mxn)