int a=0,b=0,c=0,d=0;
int jisuan(int a,int b,int m,int n)
{
if(a<m) {c=jisuan(a+1,b,m,n);}else{c=0;}
if(b<n) {d=jisuan(a,b+1,m,n);}else{d=0;}
if(a==m&&b==n)
{
return 1;
}
else{
return c+d;
}
}
int uniquePaths(int m, int n) {
return jisuan(0,0,m,n);
}
力扣路径问题个人思路不解
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 晚风不度 2024-01-19 13:50关注
只是递归的话很简单
int uniquePaths(int m, int n) { if(m == 1 || n == 1) return 1; return uniquePaths(m - 1, n) + uniquePaths(m, n - 1); }
但是遇见mn比较大的用例会超时,所以再加上记忆化搜索
int inPos(int x, int y, int **pos) { if(pos[x][y]) { return pos[x][y]; } if(x == 0 || y == 0) return 1; pos[x][y] = inPos(x - 1, y, pos) + inPos(x, y - 1, pos); return pos[x][y]; } int uniquePaths(int m, int n) { int** pos = (int**)malloc((m) * sizeof(int*)); for (int i = 0; i < m; i++) { pos[i] = (int*)malloc((n) * sizeof(int)); memset(pos[i], 0, (n) * sizeof(int)); } return inPos(m - 1, n - 1, pos); }
当然,这里没有回收pos数组,单纯的懒得写而已
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 自己做的代码上传图片时,报错
- ¥15 Lingo线性规划模型怎么搭建
- ¥15 关于#python#的问题,请各位专家解答!区间型正向化
- ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
- ¥50 comsol温度场仿真无法模拟微米级激光光斑
- ¥15 上传图片时提交的存储类型
- ¥15 VB.NET如何绘制倾斜的椭圆
- ¥15 arbotix没有/cmd_vel话题
- ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
- ¥15 用C语言怎么判断字符串的输入是否符合设定?