题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
class Solution {
int res;
int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};
public:
void bfs(int x, int y, int k, int r, int c, vector<vector<bool>>& visited) {
res += 1;
visited[x][y] = true; // 标记当前点为已访问
int a, b;
for (int i = 0; i < 4; i++) {
a = x + dx[i];
b = y + dy[i];
// 检查边界条件、访问条件以及数位和是否满足阈值
if (a < 0 || a >= r || b < 0 || b >= c) continue;
if (visited[a][b]) continue;
if (digitSum(a) + digitSum(b) > k) continue;
bfs(a, b, k, r, c, visited);
}
}
int digitSum(int num) {
int sum = 0;
while (num > 0) {
sum += num % 10;
num /= 10;
}
return sum;
}
int movingCount(int threshold, int rows, int cols) {
res = 0; // 初始化计数器
vector<vector<bool>> visited(rows, vector<bool>(cols, false)); // 初始化访问标记
if(!cols||!rows) return res;
if (threshold >= 0) bfs(0, 0, threshold, rows, cols, visited);
return res;
}
};
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla