美文网首页
7.3机器人走格子

7.3机器人走格子

作者: FiveZM | 来源:发表于2020-04-03 14:50 被阅读0次

有一个x*y的网格,一个机器人只能向右或向下走,要从左上角走到右下角.
请设计一个算法,计算机器人有多少种走法.
给定两个整数 int x,int y,请返回机器人的走法数目.保证x+y小于等于12.

递归思路:
最基本最基本的一种情况就是:

当x为1时,无论y是什么,都只有一种走法,就是向右走.
当y为1时,无论x是什么,都只有一种走法,就是向下走.

图片.png

递推公式就是,f(x,y) = f(x-1,y)+f(x,y-1)
f(x-1,y)代表的是向下走,那么面对的是x行少一行,但y列不受影响,面对的是(x-1)*y的网格.

迭代思路;

因为一个走法是被两个值确定的,即被x和y确定的
所以要用二维数组来存储,
为了方便,就多加一个数组长度,0角标的数组就不使用了
int[][] arr = new int[x+1][y+1]

当x为1时,无论y是什么,都只有一种走法,就是向右走.
当y为1时,无论x是什么,都只有一种走法,就是向下走.
所以初始化的基本问题是,
arr[1][i] = 1.第一行全为1
arr[j][1] = 1,第一列全为1

又因为递推公式
f(x,y) = f(x-1,y)+f(x,y-1).
那么arr[i][j] = arr[i-1][j]+arr[i][j-1]


图片.png
package _7节;

public class _7_3机器人走方格 {
    public static void main(String[] args) {
        System.out.println(move(6, 6));
        System.out.println(moving(6, 6));
    }
    /*
        迭代
     */
    public static int move(int x, int y) {
        int[][] arr = new int[x + 1][y + 1];
        for (int i = 1; i < y + 1; i++) {
            arr[1][i] = 1;
        }
        for (int i = 1; i < x + 1; i++) {
            arr[i][1] = 1;
        }
        for (int i = 2; i < x+1; i++) {
            for (int j = 2; j <y+1 ; j++) {
                arr[i][j]=arr[i-1][j]+arr[i][j-1];
            }
        }
        return arr[x][y];
    }
    /*
        递归
     */
    public static int moving(int x ,int y){
        if (x==1||y==1)
            return 1;
        return moving(x-1,y)+moving(x,y-1);
    }
}

相关文章

  • 7.3机器人走格子

    有一个x*y的网格,一个机器人只能向右或向下走,要从左上角走到右下角.请设计一个算法,计算机器人有多少种走法.给定...

  • LeetCode每日一题 之 矩阵中的路径

    题目 image 题目地址 解题思路 这道题和之前的一道机器人走格子的算法题很像,都是根据深度优先的回溯方法解题。...

  • 二维数组的DP问题

    问题:平面上有N*M个格子,每个格子中放着一定数量的苹果。你从左上角的格子开始,每一步只能向下走或是向右走,每次走...

  • 蓝精灵之走格子

    蓝精灵之走格子 Time Limit: 2000/1000ms (Java/Others) 64bit IO Fo...

  • 【直通BAT】剑指Offer-经典试题整理(2)

    13 机器人的运动范围 题目描述 地上有一个 m 行和 n 列的方格。 一个机器人从坐标 0,0 的格子开始移动,...

  • 8小时

    7.3 我只给你8小时 然后 把关在格子笼里的人放出来 趁着太阳的那点余晖 叹下时光 8小时 我只给你8小时 挤进...

  • 9_2方格移动

    在XxY的方格中,以左上角格子为起点,右下角格子为终点,每次只能向下走或者向右走,请问一共有多少种不同的走法 给定...

  • 羁绊

    作者 琴心 走格子爬格子在路上在网上无论脚在走还是手在敲都在巨大的网里如同网中的鱼蹚不平坦途逃不出羁绊 2019....

  • 格子

    横 竖格子方方正正你张狂大笑走自己的路不能歪曲的痛方方正正格子横竖路

  • 回溯-机器人的运动范围-java

    回溯-机器人的运动范围 题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左...

网友评论

      本文标题:7.3机器人走格子

      本文链接:https://www.haomeiwen.com/subject/eamhphtx.html