多入口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;
  }


目录
相关文章
|
JavaScript 前端开发 Java
ztree实现左边动态生成树,右边为具体信息功能
ztree实现左边动态生成树,右边为具体信息功能
65 0
|
6月前
|
JavaScript 前端开发
vue 页面下滚到目标元素的位置,目标元素自动吸顶(自动悬浮吸附到页面顶部)
vue 页面下滚到目标元素的位置,目标元素自动吸顶(自动悬浮吸附到页面顶部)
396 0
|
8月前
|
存储 程序员 C语言
扫雷?拿来吧你(递归展开+坐标标记)
扫雷?拿来吧你(递归展开+坐标标记)
|
8月前
如何实现按钮的图片在右边,文字在左边
如何实现按钮的图片在右边,文字在左边
121 0
|
8月前
|
机器学习/深度学习 算法 C++
【算法 | 实验6-1】n*n的网格,从左上角开始到右下角结束遍历所有的方块仅一次,总共有多少种不同的遍历路径
前言 思路介绍中省略了关于如何进行回溯搜索的细节,而主要讨论回溯中所使用的剪枝策略。
169 0
【二分查找】左侧边界、右侧边界、查找值
【二分查找】左侧边界、右侧边界、查找值
|
前端开发
前端学习笔记202305学习笔记第二十三天-获取树形控件选中的值
前端学习笔记202305学习笔记第二十三天-获取树形控件选中的值
40 0
|
前端开发 JavaScript API
面试官问:如何判断一个元素是否在可视区域?
面试官问:如何判断一个元素是否在可视区域?
面试官问:如何判断一个元素是否在可视区域?
|
容器
使用导航菜单如何实现在多个页面下左边导航菜单右边内容的效果
使用导航菜单如何实现在多个页面下左边导航菜单右边内容的效果
210 0