题解 | #机器人的运动范围#

机器人的运动范围

https://www.nowcoder.com/practice/6e5207314b5241fb83f2329e89fdecc8

#include <vector>
class Solution {
public:
    void dfs(int threshold, int rows, int cols, int i, int j, vector<vector<bool> > &hash) {
        if (i < 0 || i >= rows || j < 0 || j >= cols 
        || hash[i][j] || i/10 + i%10 + j/10 + j%10 > threshold) return;
        hash[i][j] = true;
        dfs(threshold, rows, cols, i-1, j, hash);
        dfs(threshold, rows, cols, i+1, j, hash);
        dfs(threshold, rows, cols, i, j-1, hash);
        dfs(threshold, rows, cols, i, j+1, hash);
    }
    int movingCount(int threshold, int rows, int cols) {
        vector<vector<bool> > hash(rows, vector<bool> (cols, false));
        dfs(threshold, rows, cols, 0, 0, hash);
        int res = 0;
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                res += hash[i][j] ? 1 : 0;
            }
        }
        return res;
    }
};

全部评论

相关推荐

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