算法题每日一练---第35天: 机器人走迷宫

简介: 一个机器人位于一个 m x n **网格的左上角。

一、问题描述


10.png一个机器人位于一个 m x n **网格的左上角 (起始点在下图中标记为 “Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。


问总共有多少条不同的路径?


题目链接:机器人走迷宫

二、题目要求


考察

动态规划中等题型
建议用时5~15min


数据要求

  • 1 <= m, n <= 100
  • 题目数据保证答案小于等于 2 * 109


样例

m=3,n=7     输出28
m=3,n=2     输出3
m=3,n=3     输出6


三、问题分析


还是用我们的三步走老套路:


第一步含义搞懂:

这是二维数组,要求出不同路径,那么就用二维数组 dp[i][j]存储不同的路径个数。


第二步变量初始:

dp[1][1]=1 原地踏步不就是吗?
一步步写太多了,不想写了,我放一个编译结果图片,偷懒一下。



第三步规律归纳:

看看上面的图片有什么特别的地方,有时间可以自己动手写一下,印象会更加深刻,当时我就写了一遍。


是不是当前数组位置的到数 = 左面的数字 + 上面的数字啊!

所以dp[m][n]=dp[m][n-1]+dp[m-1][n];

三步走,打完收工!


四、编码实现


#include<iostream>usingnamespacestd;
intuniquePaths(intm, intn) 
{
inti,j,dp[102][102]={0};//初始化变量for(i=1;i<=m;i++)//循环判断    {
for(j=1;j<=n;j++)
        {
if(i==1&&j==1)
                {
dp[1][1]=1;//初始化变量                }
elsedp[i][j]=dp[i][j-1]+dp[i-1][j];//规律归纳        }
    }
//    for(i=0;i<=m;i++)//输出当前数组元素的值//    {//        for(j=0;j<=n;j++)//        {//            cout<<dp[i][j]<<"      ";//        }cout<<"\n";//    }returndp[m][n];//返回结果}
intmain()
{
intm,n;
cin>>m>>n;//输入数组大小cout<<uniquePaths(m, n) ;//赋值给动态规划功能的函数return0;
}


五、测试结果


输入3 7:

3.png

相关文章
|
2月前
|
算法 JavaScript 前端开发
第一个算法项目 | JS实现并查集迷宫算法Demo学习
本文是关于使用JavaScript实现并查集迷宫算法的中国象棋demo的学习记录,包括项目运行方法、知识点梳理、代码赏析以及相关CSS样式表文件的介绍。
第一个算法项目 | JS实现并查集迷宫算法Demo学习
|
1月前
|
算法 Java 程序员
【算法每日一练及解题思路】有n级台阶,一次只能上1级或2级,共有多少种走法?
本文深入解析了“爬楼梯问题”,探讨了递归与迭代两种解法,并提供了Java代码实现。通过分析问题本质,帮助读者理解动态规划技巧,提高解决实际编程问题的能力。关键词:Java, 算法, 动态规划, 爬楼梯问题, 递归, 迭代。
66 0
|
1月前
|
算法 定位技术
数据结构与算法学习九:学习递归。递归的经典实例:打印问题、阶乘问题、递归-迷宫问题、八皇后问题
本文详细介绍了递归的概念、重要规则、形式,并展示了递归在解决打印问题、阶乘问题、迷宫问题和八皇后问题等经典实例中的应用。
40 0
|
3月前
|
算法 Python
【python】python基于 Q-learning 算法的迷宫游戏(源码+论文)【独一无二】
【python】python基于 Q-learning 算法的迷宫游戏(源码+论文)【独一无二】
|
4月前
|
算法 索引 Python
逆袭算法界!Python分治法、贪心算法、动态规划深度剖析,带你走出算法迷宫!
【7月更文挑战第8天】分治法,如快速排序,将大问题分解并合并解;贪心算法,选择局部最优解,如活动选择;动态规划,利用最优子结构避免重复计算,如斐波那契数列。Python示例展示这些算法如何解决实际问题,助你精通算法,勇闯迷宫。
47 1
|
5月前
|
算法
数据结构与算法-DFS+BFS篇(迷宫问题)
数据结构与算法-DFS+BFS篇(迷宫问题)
64 3
|
5月前
|
存储 算法
算法BFS经典例题(迷宫,多源BFS,BFS解决拓扑排序,FloodFill算法)
算法BFS经典例题(迷宫,多源BFS,BFS解决拓扑排序,FloodFill算法)
|
5月前
|
算法 机器人
【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人
【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人
|
6月前
|
人工智能 算法 机器人
【Python数据结构与算法】--- 递归算法的应用 ---[乌龟走迷宫] |人工智能|探索扫地机器人工作原理
【Python数据结构与算法】--- 递归算法的应用 ---[乌龟走迷宫] |人工智能|探索扫地机器人工作原理
70 0
|
6月前
|
机器学习/深度学习 人工智能 自动驾驶
强化学习算法在游戏、机器人和自动驾驶等领域的应用与实践
强化学习算法在游戏、机器人和自动驾驶等领域的应用与实践
330 0
强化学习算法在游戏、机器人和自动驾驶等领域的应用与实践