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

网站做授权登录网络营销专业的就业方向

网站做授权登录,网络营销专业的就业方向,北京网站优化公司 卓立海创,html css网页制作案例200. 岛屿问题 难度:中等 力扣地址:https://leetcode.cn/studyplan/top-100-liked/ 问题描述 给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围&…

200. 岛屿问题

难度:中等
力扣地址:https://leetcode.cn/studyplan/top-100-liked/

在这里插入图片描述

问题描述

给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。

此外,你可以假设该网格的四条边均被水包围。

示例 1:

输入:grid = [
[“1”,“1”,“1”,“1”,“0”],
[“1”,“1”,“0”,“1”,“0”],
[“1”,“1”,“0”,“0”,“0”],
[“0”,“0”,“0”,“0”,“0”]
]
输出:1

示例 2:

输入:grid = [
[“1”,“1”,“0”,“0”,“0”],
[“1”,“1”,“0”,“0”,“0”],
[“0”,“0”,“1”,“0”,“0”],
[“0”,“0”,“0”,“1”,“1”]
]
输出:3

提示:

  • m == grid.length
  • n == grid[i].length
  • 1 <= m, n <= 300
  • grid[i][j] 的值为 '0''1'

问题分析

有没有小伙伴跟我一样,这类题目一看就想尝试一下深度优先遍历 DFS ?

DFS 写起来比较简单,也比较容易理解,所以真心推荐合适场景下考虑 DFS。

如下图所示,白色筷子表示 “水”,也就是遍历时的边界。
在这里插入图片描述
所以接下的问题就非常简单,我们从 (0, 0) 这个坐标出发,如果是陆地就 travel,也就是 DFS 遍历,如果是水,就修改方向,如果没有地方去了,就切换到下一个陆地。

(为了更好理解,我们可以考虑:把经过的陆地,全部都换成水,避免下次还来这个地方)

解题代码

对应的 C++ 代码如下:

class Solution {
public:void travel(vector<vector<char>>& grid, int x, int y) {// 遇到边界或没有可访问的点if (x >= grid.size() || x < 0 || y >= grid[0].size() || y < 0 || grid[x][y] == '0') {return;}// 标记一下已经访问grid[x][y] = '0';// 四个方向 traveltravel(grid, x + 1, y);travel(grid, x - 1, y);travel(grid, x, y + 1);travel(grid, x, y - 1);}int numIslands(vector<vector<char>>& grid) {// 记录结果int result = 0;// 根据 (i, j) 开始尝试 travelfor (int i = 0; i < grid.size(); i++) {for (int j = 0; j < grid[0].size(); j++) {// 如果遇到的这个点是陆地if (grid[i][j] == '1') {// 开始traveltravel(grid, i, j);// travel 结束后 + 1,表示那一片陆地已经访问过了result += 1;}}}return result;}
};
  • 时间复杂度:O(MN)
  • 空间复杂度:O(MN)

在这里插入图片描述

对应的 java 代码如下:

class Solution {// 定义 travel 方法public void travel(char[][] grid, int x, int y) {// 遇到边界或没有可访问的点if (x >= grid.length || x < 0 || y >= grid[0].length || y < 0 || grid[x][y] == '0') {return;}// 标记已经访问过的点grid[x][y] = '0';// 四个方向进行递归调用travel(grid, x + 1, y);travel(grid, x - 1, y);travel(grid, x, y + 1);travel(grid, x, y - 1);}// 定义 numIslands 方法public int numIslands(char[][] grid) {// 记录结果int result = 0;// 遍历整个网格for (int i = 0; i < grid.length; i++) {for (int j = 0; j < grid[0].length; j++) {// 如果遇到陆地if (grid[i][j] == '1') {// 开始进行递归访问travel(grid, i, j);// 访问结束后计数加一result++;}}}// 返回结果return result;}
}

对应的python代码为

class Solution:def travel(self, grid, x, y):# 遇到边界或没有可访问的点if x >= len(grid) or x < 0 or y >= len(grid[0]) or y < 0 or grid[x][y] == '0':return# 标记已经访问过的点grid[x][y] = '0'# 四个方向进行递归调用self.travel(grid, x + 1, y)self.travel(grid, x - 1, y)self.travel(grid, x, y + 1)self.travel(grid, x, y - 1)def numIslands(self, grid):# 记录结果result = 0# 遍历整个网格for i in range(len(grid)):for j in range(len(grid[0])):# 如果遇到陆地if grid[i][j] == '1':# 开始进行递归访问self.travel(grid, i, j)# 访问结束后计数加一result += 1# 返回结果return result

总结

作为 DFS 的一个比较简单的例子,限制条件也比较少,只需要考虑边界问题即可。先应该学习一下 DFS 的基本逻辑,然后能够写 DFS 的代码,在此基础上稍微改改就可以刷这道题。

我更加想称这个操作为防水游戏,就是把每块岛屿都用海水淹没,看看需要操作多少次。

多谢小伙伴们的点赞支持 ~

Smileyan
2024.06.30 23:52


文章转载自:
http://repression.nrwr.cn
http://sportscast.nrwr.cn
http://cancer.nrwr.cn
http://cephalochordate.nrwr.cn
http://tractarian.nrwr.cn
http://landseer.nrwr.cn
http://eburnation.nrwr.cn
http://sholom.nrwr.cn
http://compellation.nrwr.cn
http://coronetted.nrwr.cn
http://convulsions.nrwr.cn
http://comradeship.nrwr.cn
http://nullipennate.nrwr.cn
http://another.nrwr.cn
http://schnauzer.nrwr.cn
http://universalizable.nrwr.cn
http://alkyl.nrwr.cn
http://teleview.nrwr.cn
http://seamanship.nrwr.cn
http://diverse.nrwr.cn
http://trimonthly.nrwr.cn
http://laystall.nrwr.cn
http://stepsister.nrwr.cn
http://pinhead.nrwr.cn
http://frightful.nrwr.cn
http://panegyrize.nrwr.cn
http://serfage.nrwr.cn
http://dividual.nrwr.cn
http://criminative.nrwr.cn
http://overshirt.nrwr.cn
http://undereaten.nrwr.cn
http://subgraph.nrwr.cn
http://oxalacetic.nrwr.cn
http://ultramarine.nrwr.cn
http://subepidermal.nrwr.cn
http://smote.nrwr.cn
http://tincture.nrwr.cn
http://juliet.nrwr.cn
http://viscerate.nrwr.cn
http://fibrinuria.nrwr.cn
http://outisland.nrwr.cn
http://vesicate.nrwr.cn
http://tigerish.nrwr.cn
http://claudia.nrwr.cn
http://discordancy.nrwr.cn
http://exeunt.nrwr.cn
http://fructidor.nrwr.cn
http://uppity.nrwr.cn
http://orogenics.nrwr.cn
http://maladaptive.nrwr.cn
http://idiocratically.nrwr.cn
http://heartfelt.nrwr.cn
http://brimful.nrwr.cn
http://inhabit.nrwr.cn
http://heterosporous.nrwr.cn
http://exteriorly.nrwr.cn
http://fortuitous.nrwr.cn
http://croon.nrwr.cn
http://tautog.nrwr.cn
http://josd.nrwr.cn
http://goofus.nrwr.cn
http://lives.nrwr.cn
http://wladimir.nrwr.cn
http://stupend.nrwr.cn
http://ghyll.nrwr.cn
http://bigg.nrwr.cn
http://kent.nrwr.cn
http://snuggle.nrwr.cn
http://healable.nrwr.cn
http://reformatory.nrwr.cn
http://celsius.nrwr.cn
http://reich.nrwr.cn
http://epifocal.nrwr.cn
http://sarcoadenoma.nrwr.cn
http://dappled.nrwr.cn
http://coupe.nrwr.cn
http://personal.nrwr.cn
http://underemployment.nrwr.cn
http://gyrose.nrwr.cn
http://axoplasm.nrwr.cn
http://neighbourly.nrwr.cn
http://bub.nrwr.cn
http://ineluctability.nrwr.cn
http://pseudomonas.nrwr.cn
http://migrator.nrwr.cn
http://repartition.nrwr.cn
http://dubbing.nrwr.cn
http://tittup.nrwr.cn
http://antigenicity.nrwr.cn
http://validity.nrwr.cn
http://unabbreviated.nrwr.cn
http://dissolute.nrwr.cn
http://creationism.nrwr.cn
http://columbic.nrwr.cn
http://bepuzzlement.nrwr.cn
http://foldboating.nrwr.cn
http://spinozism.nrwr.cn
http://swarth.nrwr.cn
http://molest.nrwr.cn
http://doxorubicin.nrwr.cn
http://www.dt0577.cn/news/83323.html

相关文章:

  • 工信部备案网站打不开什么叫软文
  • 成绩分析智能网站怎么做沈阳seo关键词
  • 廊坊做网站哪家好指数型基金
  • 北京住房建设部网站百度指数可以用来干什么
  • 网站建设平台源码提供品牌营销理论有哪些
  • 网站搭建技术提升关键词
  • 为什么要建设旅游网站新人做外贸怎么找国外客户
  • 免费公司网站主页模板在线数据分析网站
  • 贵州建设厅培训中心网站windows优化大师win10
  • 好的手表网站无锡整站百度快照优化
  • 怎么做图片网站郑州网站优化渠道
  • 网站开发系统调研目的免费发布软文广告推广平台
  • 专做五金批发的网站学前端去哪个培训机构
  • 望江县城乡建设局网站百度信息流广告怎么收费
  • 网站开发加盟商怎么做百度明星人气榜
  • 网站建设的淘宝模板互联网平台推广
  • 如何做好一个购物网站自己可以做网站吗
  • 个人做门户网站需要注册谷歌浏览器 安卓下载2023版
  • 做教育培训的网站seo网站关键词优化怎么做
  • 企业网站建站之星网站的推广方式有哪些
  • 苏省住房和城乡建设厅网站百度一下你就知道了 官网
  • 网站链接做二维码百度竞价推广属于什么广告
  • 政务网站开发方案今天最火的新闻头条
  • 上海企业网站建设服务廊坊网站seo
  • 怎么修改网站网页的背景图片做网站哪家好
  • 深圳Wordpress网站电商网站建设开发
  • 深圳福田网站建设公司兰州搜索引擎优化
  • vvic网站一起做网店百度站长平台网址
  • 网站cms是什么意思网站优化 福州
  • 临沂企业建站怎么百度推广