0
点赞
收藏
分享

微信扫一扫

剑指 Offer 13. 机器人的运动范围(JavaScript语言)

思路(深度优先搜索+回溯)

代码

/**
 * @param {number} m
 * @param {number} n
 * @param {number} k
 * @return {number}
 */
var movingCount = function(m, n, k) {
    var visited = new Array(m);
    for(let i = 0; i < m; i++) {
        visited[i] = new Array(n).fill(false);
    }

    var dfs = function(i, j,visited) {
        var ii = i;
        var jj = j;
        var sum_of_dights = 0;//行和列各位数之和
        while(ii) {
            sum_of_dights = sum_of_dights + (ii % 10);
            ii = parseInt(ii / 10);
        }
        while(jj) {
            sum_of_dights = sum_of_dights + (jj % 10);
            jj = parseInt(jj /10);
        }
        if(i < 0 || i >= m || j < 0 || j >= n || sum_of_dights > k || visited[i][j]) {
            return 0;
        }
        
        visited[i][j] = true;  
        
        return 1 + dfs(i + 1, j,visited) + dfs(i, j + 1,visited) + dfs(i - 1, j,visited) + dfs(i, j -1,visited);

    }
    return dfs(0, 0,visited);

};
举报

相关推荐

0 条评论