多入口BFS(上下左右)模板

简介: 多入口BFS(上下左右)模板
public static void bfs(char[][] grid, boolean[][] visit, int i, int j) {
    Queue<int[]> queue = new LinkedList<int[]>();
    queue.add(new int[] { i, j });
    int[][] directions = new int[][] { { 0, 1 }, { 0, -1 }, { 1, 0 }, { -1, 0 } };
    while (queue.size() > 0) {
      int size = queue.size();
      int[] val = queue.poll();
      for (int[] dir : directions) {
        int row = val[0] + dir[0];
        int col = val[1] + dir[1];
        boolean index = (row < grid.length) && (col < grid[0].length) && (row >= 0) && (col >= 0);
        if (index && !visit[row][col] && grid[row][col] == '1') {
          visit[row][col] = true;
          queue.add(new int[] { row, col });
        }
      }
    }
    result += 1;
  }


目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能
BFS模板
BFS模板
38 3
|
6月前
|
存储 程序员 C语言
扫雷?拿来吧你(递归展开+坐标标记)
扫雷?拿来吧你(递归展开+坐标标记)
|
6月前
|
机器学习/深度学习 算法 C++
【算法 | 实验6-1】n*n的网格,从左上角开始到右下角结束遍历所有的方块仅一次,总共有多少种不同的遍历路径
前言 思路介绍中省略了关于如何进行回溯搜索的细节,而主要讨论回溯中所使用的剪枝策略。
140 0
|
容器
使用导航菜单如何实现在多个页面下左边导航菜单右边内容的效果
使用导航菜单如何实现在多个页面下左边导航菜单右边内容的效果
198 0
|
算法 容器
二维容器进行图的DFS搜索和BFS搜索-C++STL模板
二维容器进行图的DFS搜索和BFS搜索-C++STL模板
186 1
二维容器进行图的DFS搜索和BFS搜索-C++STL模板
|
定位技术
宽搜 bfs 求解地图中初始位置到目的位置最短的路径 两道题
宽搜 bfs 求解地图中初始位置到目的位置最短的路径 两道题
宽搜 bfs 求解地图中初始位置到目的位置最短的路径 两道题
AcWing 749. 数组的上方区域
AcWing 749. 数组的上方区域
58 0
AcWing 749. 数组的上方区域
|
算法
|
算法
☆打卡算法☆LeetCode 117、 填充每个节点的下一个右侧节点指针 II 算法解析
给定一个二叉树,填充它的每个next指针,让这个指针指向其下一个右侧节点。”