所有实现代码均使用JAVA

letcode上的算法题,贴原图

首先来分析一下,网格可以使用二维数组来实现,以下图为例 m = 2,n = 3 ,起点为 1([0][0]),终点为 6([1][2])
{
{1, 2, 3},
{4, 5, 6},
};

由于只能向右或向下走,先列出所有路径
1 -> 2 -> 3 -> 6
1 -> 4 -> 5 -> 6
.
1 -> 2 -> 5 -> 6
第三
条比较特殊,从起点1开始走到2的时候,有两条路,可以向右也可以向下。如果数组再大点,那么路径会更多。

这时候分析一下 2 的特征,
2 不是数组一({1,2,3})的最后一位(3是最后一位),所以可以继续向右移,
同理,2 不包含在数组二({4,5,6})中,也可以从2([0][1])移动到5([1][1])。
所以只要判断 2(所有移动后的坐标) 的横坐标是否为 m,纵坐标是否为n就行了,如果不是就右移+左移,移动完之后还不是就继续左移+右移,直到找到终点为止
直接上代码

static int cout = 0;public static void main(String[] args) {int[][] nums = {{1, 1, 1},{1, 1, 1},};getStep(0, 0, nums);System.out.println("总步数为:  " + cout);
}private static void getStep(int i, int j, int[][] nums) {if (i == (nums.length - 1) && j == nums[nums.length - 1].length - 1) {  //到达终点cout++;}if (i < nums.length - 1) {  //下移getStep(i + 1, j, nums);  //反复玩自己}if (j < nums[nums.length - 1].length - 1) {  //右移getStep(i, j + 1, nums);}
}

这是简单的递归调用。为了测试,数组写死的,也可以写方法根据 m,n 的值动态生成。

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 总共多少步相关推荐

  1. Leetcode:62题 不同路径(一个机器人位于一个 m x n 网格的左上角 。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角)

    题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为&q ...

  2. 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径, 使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。

    #include <iostream> #include <vector> using namespace std;/* 给定一个包含非负整数的 m x n 网格,请找出一条从 ...

  3. 不同路径(一个机器人位于一个 m x n 网格的左上角)

    一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为" ...

  4. 数据库中查询记录时是否每次只能使用一个索引?

    在网上看一些文章的时候,发现好几次下面这样的话: 如果经常需要同时对两个字段进行AND查询,那么使用两个单独索引不如建立一个复合索引,因为两个单独索引通常数据库只能使用其中一个,而使用复合索引因为索引 ...

  5. 一个机器人位于m x n网格的左上角达到网格的右下角,有多少条不同的路径?

    一个机器人位于m x n网格的左上角(起始点标记为Start). 机器人每次只能向下或向右移动一步.机器人试图达到网格的右下角(标记为Finish). 有多少条不同的路径? Start 1 1 1 2 ...

  6. 一个机器人在m×n大小的地图的左上角(起点,下图中的标记“start“的位置)。 机器人每次向下或向右移动。机器人要到达地图的右下角。(终点,下图中的标记“Finish“的位置)。 可以有多少种不同

    题目描述 一个机器人在m×n大小的地图的左上角(起点,下图中的标记"start"的位置). 机器人每次向下或向右移动.机器人要到达地图的右下角.(终点,下图中的标记"Fi ...

  7. 【蓝桥杯】有一张 m×n 个小方格的地图,一个机器人位于地图的左上角,它每步只能向右或者向下移动一格。。。

    题目描述 有一张 m×n 个小方格的地图,一个机器人位于地图的左上角(如图标记为 Start 的地方),它每步只能向右或者向下移动一格,如果走到右下角的终点(如图标记为 Finish 的地方),有多少 ...

  8. 动态规划-机器人位于m x n网格的左上角只能向下向右移动,有多少路径

    package com.algorithm.dynamicprogramming;/*** 算法描述:机器人位于m x n网格的左上角(下图中标记为"开始").* 机器人只能在任何 ...

  9. 安装Linux时,引导分区位于一个GPT分区方案的错误提示

    在安装Linux时,如果机器之前装过VMware EXi5系统,在分区时会出现 ************************* 分区错误 您所引导分区位于一个使用GPT分区方案的磁盘中 ***** ...

最新文章

  1. ObservableCollection 类 详解
  2. Windows编程之使用外部动态链接库——纸牌
  3. 敏捷需求分析及深度提升(广州 2014.1.11)
  4. Maven聚合工程怎么变回普通的Maven工程
  5. POJ1384Piggy-Bank(DP)
  6. [蓝桥杯]基础练习 特殊回文数
  7. Netty权威指南(第2版)
  8. Total Control通过定义配置文件,预加载脚本教程
  9. java 右下角_java实现桌面右下角弹窗效果
  10. linux上电自动开启wifi脚本,archlinux 开机自动连接wifi
  11. 今天开始学Convex Optimization:第2章 背景数学知识简述
  12. python若干整数的最大值_python脚本3_输入若干个整数打印出最大值
  13. 【PhotoShop】用自己的照片做个好看的星空头像PS
  14. 数据库系统原理学习(三)--PG数据定义与操作
  15. 从阿里巴巴发行价看A股新股投资机会
  16. Linux 计算机网络从零到一开始构建 必看
  17. JuiceFS 在多云存储架构中的应用 | 深势科技分享
  18. 35岁以前要百万年薪
  19. (译)java NIO 示例代码
  20. Hibernate Validation各注解的用法

热门文章

  1. 计算机网络未来阶段发展趋势,计算机网络的未来发展趋势
  2. BFC、IFC、GFC、FFC
  3. FISCO BCOS群组特性
  4. Modbus 简单认识(楼宇自动化系统背景下的详实总结
  5. 8.Spring Boot中使用thymeleaf
  6. 怎么查看计算机的dns地址,如何查看windows10电脑DNS地址?查看win10电脑DNS地址的两种方法...
  7. BUUCTF-刷题记录-3
  8. 在Pycharm set ops_config=local之后,直接echo %ops_config%能找到ops_config,但是输入print(os.environ)里边没有ops_config
  9. KANKAN AI不良信息过滤技术:用数据证明自己是最好的
  10. 程序员去美国工作:2015年H1B抽签结果与分析