题解 | #机器人的运动范围#
机器人的运动范围
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;
}
};

