首页 > 其他 > 详细

剑指 Offer 13. 机器人的运动范围

时间:2020-08-08 18:09:38      阅读:82      评论:0      收藏:0      [点我收藏+]
public int movingCount(int m, int n, int k) {  //暴力法?
        boolean[][] visited = new boolean[m][n];
        return move_count(m,n,k,0,0,visited);
    }

    private int move_count(int m, int n, int k, int row_start,int col_start, boolean[][] visited) {
        if(row_start<0 || row_start ==m || col_start<0 || col_start == n) return 0;
        if(!visited[row_start][col_start]) {
            visited[row_start][col_start] = true;
            int h = 0;
            int x = row_start, y = col_start;
            while (x >= 10) {
                h += x % 10;
                x = x / 10;
            }
            while (y >= 10) {
                h += y % 10;
                y = y / 10;
            }
            h = h + x + y;
            if (h <= k) {
                return 1+ move_count(m, n, k, row_start + 1, col_start, visited)
                        + move_count(m, n, k, row_start - 1, col_start,visited)
                        +move_count(m, n, k, row_start, col_start + 1, visited)
                        +move_count(m, n, k, row_start, col_start - 1,  visited);
            }
        }
        return 0;
    }

技术分享图片

 

 深度优先遍历,递归

剑指 Offer 13. 机器人的运动范围

原文:https://www.cnblogs.com/taoyuxin/p/13457932.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!