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

163 阅读1分钟

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

var movingCount = function (m, n, k) {
    var arr = Array.from({ length: m }, () => Array(n).fill(false))
    return dfs(0, 0, arr);
    function dfs(i, j, arr) {
        if (i >= m || j >= n) return 0;
        if (k < sum(i, j)) return 0;
        if (arr[i][j]) return 0;
        arr[i][j] = true;
        return 1 + dfs(i + 1, j, arr) + dfs(i, j + 1, arr);
    }
    function sum(i, j) {
        var sum = 0;
        while (i) {
            sum += i % 10;
            i = (i / 10) >> 0;
        }
        while (j) {
            sum += j % 10;
            j = (j / 10) >> 0;
        }
        return sum;
    }
};