c++ - 只有 k 步的二维数组的 DFS
问题描述
我必须在 2D 数组上做 DFS,但不完全。它应该只在终止前发生 k 步。这意味着从某个特定位置开始,DFS 应该只针对 k 步的左、右、上和下方向的组合工作。对于特定位置的每个 K 步,我正在递增矩阵中的值。这是我的 DFS 代码-
void component(vector<vector<int>>& grid, vector<vector<int> >&visited, int i,int j, int k){
if(i<0 || j<0 || i>=grid.size() || j>=grid[0].size() || visited[i][j]==1 || k < 0){
return;
}
visited[i][j] = 1;
grid[i][j]++;
component(grid,visited,i,j-1,k-1);
component(grid,visited,i+1,j,k-1);
component(grid,visited,i,j+1,k-1);
component(grid,visited,i-1,j,k-1);
}
在 DFS 调用之前,网格看起来像这样 -
vector< vector<int> > grid= {{0,0,0,1}, {0,1,0,0}, {0,0,1,0}, {1,0,0,0}, {0,0,0,0}};
我正在调用这样的函数component(grid,visited,row,col)
whererow
和col
是 row 和 col 的索引,其中 1 在网格中找到。(实际上,我正在保存网格中具有 1 的所有位置,然后在完成对 1 的 DFS 调用后再次更新它们 - 这确保我不会为网格跳过任何 1)我没有得到所需的输出我的 DFS 函数。请帮我找出问题所在。
解决方案
推荐阅读
- android - 在第 4 步将 firebase 添加到 firebase 控制台中的应用程序停止
- php - 不同事件的不同页面模板(EVENTS CALENDAR PRO 插件)
- r - R 从时间戳中提取时间然后另存为新列
- javascript - 方法不允许错误 405 post ajax request to post route
- php - MySQL Join,其中匹配的列包含不同的值
- python - 如何从 aws 图像详细信息中获取操作系统信息
- ios - 在 iOS 导航控制器中全局翻译“返回”文本
- security - 在转发到 Keycloak Login 之前阻止 Web App Basic Authorization 质询
- html - 50% 高度的 div 堆叠成行
- python - numpy 掩码创建广播