递归解法 | #机器人走方格I#

机器人走方格I

https://www.nowcoder.com/practice/e8bb8e68434e42acbcdff0341f2a32c5


import java.util.*;

public class Robot {
    public int countWays(int x, int y) {
        // write code here
        // 大于12不符合要求
        if (x + y > 12) {
            return 0;
        }
        // 起点坐标为1,1,而非0,0
        int mx = 1;
        int my = 1;
        int move = move(x, y, mx, my);
        return move;
    }


    public static int move(int x, int y, int mx, int my) {
        // 超出边界
        if (mx > x || my > y) {
            return 0;
        }
        // 走到目标点,记一次
        if (mx == x && my == y) {
            return 1;
        }
        // 向右边和下边持续递归
        return move(x, y, mx + 1, my) + move(x, y, mx, my + 1);
    }
}


全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务