当前位置: 首页 > news >正文

做摄影网站的目的是什么/搜狐财经峰会

做摄影网站的目的是什么,搜狐财经峰会,溧阳网站建设公司,网页设计与制作心得体会1000leetcode 1162. 地图分析 BFS在网格中的应用 如图,1是岛屿,2是海鲜,则可以通过广度搜索,最大路径是4 与树的BFS区别如下: 1、tree只有1个root,而图可以有多个源点,所以首先需要把多个源点都入…

leetcode 1162. 地图分析

BFS在网格中的应用

如图,1是岛屿,2是海鲜,则可以通过广度搜索,最大路径是4
在这里插入图片描述
与树的BFS区别如下:
1、tree只有1个root,而图可以有多个源点,所以首先需要把多个源点都入队。
2、tree是有向的因此不需要标记是否访问过,而对于无向图来说,必须得标记是否访问过。并且为了防止某个节点多次入队,需要在入队之前就将其设置成已访问。

使用BFS解题

代码如下,代码比较多,等下一步步讲解

class Solution {static int[] dx = {-1, 0, 1, 0};static int[] dy = {0, 1, 0, -1};int n;int[][] grid;public int maxDistance(int[][] grid) {this.n = grid.length;this.grid = grid;int ans = -1;for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {if (grid[i][j] == 0) {ans = Math.max(ans, findNearestLand(i, j));}}}return ans;}public int findNearestLand(int x, int y) {boolean[][] vis = new boolean[n][n];Queue<int[]> queue = new LinkedList<int[]>();queue.offer(new int[]{x, y, 0});vis[x][y] = true;while (!queue.isEmpty()) {int[] f = queue.poll();for (int i = 0; i < 4; ++i) {int nx = f[0] + dx[i], ny = f[1] + dy[i];if (!(nx >= 0 && nx < n && ny >= 0 && ny < n)) {continue;}if (!vis[nx][ny]) {queue.offer(new int[]{nx, ny, f[2] + 1});vis[nx][ny] = true;if (grid[nx][ny] == 1) {return f[2] + 1;}}}}return -1;}
}

从坐标上来说,左上角开始为(0,0),我们需要知道某个坐标(x,y)上下左右的位置,就需要四个方向左(x-1,y)右(x+1,y)上(x,y-1)下(x,y+1)

回到代码中,因此需要先声明两个数组,遍历的时候就能去遍历上下左右四个新坐标了
在这里插入图片描述
在这里插入图片描述
这里的nx和ny就是走过一步后的新坐标。如果该坐标不在网格内,跳过当前循环,否则,塞入队列中,并且count数+1,这里的count数就是入队列中数组的第三个值,用来算最大距离的,而前两个值存的是x和y
在这里插入图片描述
前面说过,对于无向图,必须得标记是否访问过。并且为了防止某个节点多次入队,需要在入队之前就将其设置成已访问。更通俗的讲,就是已经走过一遍的坐标就不要再走一次了。关于标记,方法如下
在这里插入图片描述
最后返回最大距离
在这里插入图片描述
再看官方图解的时候,就很清楚了
在这里插入图片描述

时间复杂度

遍历会有四次循环,所以时间复杂度基本会比较高,为O(n4),官方还有其他解法,这里只介绍bfs在最短路径中的解法

http://www.jmfq.cn/news/4784527.html

相关文章:

  • 学做网站好吗/北京seo公司哪家好
  • vps如何做网站/如何进行seo
  • 可以做众筹的网站有哪些/优化网站广告优化
  • 哪里做百度网站/上海做网络口碑优化的公司
  • 青岛建设网站制作/外贸推广平台哪个好
  • 如东住房和城乡建设局网站/seo推广哪家公司好
  • 电子商务网站建设实训个人总结/品牌营销策划方案怎么做才好
  • 常德网站建设费用/外贸营销网站制作
  • 宁波外包seo服务/网站推广和seo
  • 做网站的经验和体会/搜索引擎关键词优化方案
  • 济南网站制作工具/互联网营销师证书有用吗
  • 效果好的网站建设公司/惠州网络营销
  • 网站开发语言java和php/宁波seo网络推广外包报价
  • 广州企业网站建设推荐/seo推广怎么样
  • wordpress当下载站/国外域名注册网站
  • 做一款微信小程序多少钱/长春seo公司
  • 网站建设对于电子商务的意义/唐山网站建设方案优化
  • 做衣服的网站推荐/济南优化网页
  • php零基础做网站/郑州黑帽seo培训
  • 长春网站建长春做网站/外链的作用
  • 网站系统建设架构/百度关键字排名软件
  • app产品网站建设/seo外包如何
  • 有没有做京东客好的网站推荐/2023年中国进入一级战备状态了吗
  • 游戏交易平台/百度关键词优化系统
  • 网站后台如何做文件下载连接/b2b电商平台有哪些
  • 整站seo免费咨询/win7系统优化大师
  • 网站做的拖管不行 怎么投诉/广东短视频seo营销
  • vue 做企业网站行不/锦州网站seo
  • 湖南做防水堵漏工程商网站/seo排名工具给您好的建议
  • 域名除了做网站还能做什么/附子seo