首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
岛屿专题
【代码随想录训练营第42期 续Day52打卡 - 图论Part3 - 卡码网 103. 水流问题 104. 建造最大岛屿
目录 一、做题心得 二、题目与题解 题目一:卡码网 103. 水流问题 题目链接 题解:DFS 题目二:卡码网 104. 建造最大岛屿 题目链接 题解:DFS 三、小结 一、做题心得 也是成功补上昨天的打卡了。 这里继续图论章节,还是选择使用 DFS 来解决这类搜索问题(单纯因为我更熟悉 DFS 一点),今天补卡的是水流问题和岛屿问题。个人感觉这一章节题对于刚
阅读更多...
图论篇--代码随想录算法训练营第五十二天打卡| 101. 孤岛的总面积,102. 沉没孤岛,103. 水流问题,104.建造最大岛屿
101. 孤岛的总面积 题目链接:101. 孤岛的总面积 题目描述: 给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格包围。孤岛是那些位于矩阵内部、所有单元格都不接触边缘的岛屿。 现在你需要计算所有孤岛的总面积,岛屿面积的计算方式为组成岛屿的陆地的总数。 解题思路: 从周边找到陆地,然后通过 dfs或者bfs 将
阅读更多...
图论篇--代码随想录算法训练营第五十一天打卡| 99. 岛屿数量(深搜版),99. 岛屿数量(广搜版),100. 岛屿的最大面积
99. 岛屿数量(深搜版) 题目链接:99. 岛屿数量 题目描述: 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。 解题思路: 1、每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 2、遇到一个没有遍历过的节点陆地,计数器就加一,然后把该节点陆地所能遍历到的陆地都
阅读更多...
秋招突击——算法练习——8/26——图论——200-岛屿数量、994-腐烂的橘子、207-课程表、208-实现Trie
文章目录 引言正文200-岛屿数量个人实现 994、腐烂的橘子个人实现参考实现 207、课程表个人实现参考实现 208、实现Trie前缀树个人实现参考实现 总结 引言 正文 200-岛屿数量 题目链接 个人实现 我靠,这道题居然是腾讯一面的类似题,那道题是计算最大的岛屿面积,如果当时没做出来,现在得哭死!好在做出来了!这道题单纯使用回溯实现的,然后修改一下地图的坐标
阅读更多...
Day47 | 110.字符串接龙 105.有向图的完全可达性 106.岛屿的周长
110.字符串接龙 110. 字符串接龙 题目 题目描述 字典 strList 中从字符串 beginStr 和 endStr 的转换序列是一个按下述规格形成的序列: 1. 序列中第一个字符串是 beginStr。 2. 序列中最后一个字符串是 endStr。 3. 每次转换只能改变一个字符。 4. 转换过程中的中间字符串必须是字典 strList 中的字符串,且strLis
阅读更多...
代码随想录day53 110. 字符串接龙 105.有向图的完全可达性 106. 岛屿的周长
代码随想录day53 110. 字符串接龙 105.有向图的完全可达性 106. 岛屿的周长 110. 字符串接龙 代码随想录 #include <iostream>#include <vector>#include <unordered_set>#include <unordered_map>#include <queue>using namespace std;int main(
阅读更多...
代码随想录算法训练营第 53 天 |卡码网110.字符串接龙 卡码网105.有向图的完全可达性 卡码网106.岛屿的周长
代码随想录算法训练营 Day53 代码随想录算法训练营第 53 天 |卡码网110.字符串接龙 卡码网105.有向图的完全可达性 卡码网106.岛屿的周长 目录 代码随想录算法训练营前言卡码网110.字符串接龙卡码网105.有向图的完全可达性卡码网106.岛屿的周长 一、卡码网110.字符串接龙1.题目链接2.思路3.题解 二、105.有向图的完全可达性1.题目链接2.思路3.题解
阅读更多...
代码随想录day52 101孤岛的总面积 102沉没孤岛 103水流问题 104建造最大岛屿
代码随想录day52 101孤岛的总面积 102沉没孤岛 103水流问题 104建造最大岛屿 101孤岛的总面积 代码随想录 #include <iostream>#include <vector>using namespace std;int count = 0;int dir[4][2] = {{1, 0}, {0, 1}, {-1 ,0}, {0, -1}};void dfs(v
阅读更多...
Day46 | 101孤岛的总面积 102沉没孤岛 103水流问题 104建造最大岛屿
语言 Java 101.孤岛的总面积 101. 孤岛的总面积 题目 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格包围。孤岛是那些位于矩阵内部、所有单元格都不接触边缘的岛屿。 现在你需要计算所有孤岛的总面积,岛屿面积的计算方式为组成岛屿的陆地的总数。 输入描述 第一行包含两个整数 N, M,表示矩
阅读更多...
代码随想录算法训练营第 51 天 |LeetCode99岛屿数量 LeetCode100.岛屿的最大面积
代码随想录算法训练营 Day51 代码随想录算法训练营第 51 天 |LeetCode99岛屿数量 LeetCode100.岛屿的最大面积 目录 代码随想录算法训练营前言LeetCode200 岛屿数量LCR 105. 岛屿的最大面积 一、广度优先搜索基础1、用队列实现2、代码框架: 二、卡码网99岛屿数量(LeetCode200 岛屿数量 )1.题目链接2.思路3.题解 三、LC
阅读更多...
代码随想录算法训练营第53天| 图论 101.孤岛的总面积 102.沉没孤岛 、103.水流问题 、104.建造最大岛屿
101.孤岛的总面积 题目链接:101.孤岛的总面积 思路:采用了深搜和一个布尔函数判断是否为陆地,是陆地在后期不参与统计面积 代码: #include<iostream>using namespace std;#include<vector>//#include<bool>//多加一个是否碰到边缘函数//深搜vector<vector<int>> mov={{0,-1,
阅读更多...
Day45 | 99.岛屿数量 深搜 广搜 100.岛屿的最大面积
语言 Java 99.岛屿数量 深搜 广搜 99. 岛屿数量 题目 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。 输入描述 第一行包含两个整数 N, M,表示矩阵的行数和列数。 后续 N 行,每行包含 M 个数字,数字为 1 或者 0。 输出描述 输出
阅读更多...
算法工程师第四十四天(99. 岛屿数量 深搜 99. 岛屿数量 广搜 100.岛屿的最大面积 )
参考文献 代码随想录 一、岛屿数量 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。 输入描述 第一行包含两个整数 N, M,表示矩阵的行数和列数。 后续 N 行,每行包含 M 个数字,数字为 1 或者 0。 输出描述 输出一个整数,表示岛屿的数量。如果不存在岛
阅读更多...
代码随想录算法训练营第五十三天 | 101. 孤岛的总面积、102. 沉没孤岛、 103. 水流问题、 104. 建造最大岛屿
一、101. 孤岛的总面积 题目链接:101. 孤岛的总面积 (kamacoder.com) 文章链接:代码随想录 (programmercarl.com)——101. 孤岛的总面积 二、102. 沉没孤岛 题目链接:102. 沉没孤岛 (kamacoder.com) 文章链接:代码随想录 (programmercarl.com)——102. 沉没孤岛 三、 103.
阅读更多...
算法训练营第六十七天 | 卡码网110 字符串接龙、卡码网105 有向图的完全可达性、卡码网106 岛屿的周长
卡码网110 字符串接龙 这题一开始用的邻接表+dfs,不幸超时 #include <iostream>#include <list>#include <string>#include <vector>using namespace std;int minLen = 501;bool count(string a, string b) {int num = 0;for (int i
阅读更多...
算法训练营day66-孤岛总面积-沉没孤岛-水流问题-建造最大岛屿
题目1:101. 孤岛的总面积 (kamacoder.com) #include <iostream>#include <vector>#include <queue>using namespace std;int dir[4][2] = {0,-1,-1,0,0,1,1,0};int count = 0;void bfs(vector<vector<int>>& map, vect
阅读更多...
代码随想录算法训练营第六十六天 |101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
101.孤岛的总面积 文字讲解:101. 孤岛的总面积 | 代码随想录 解题思路 本题要求找到不靠边的陆地面积,那么我们只要从周边找到陆地然后 通过 dfs或者bfs 将周边靠陆地且相邻的陆地都变成海洋,然后再去重新遍历地图 统计此时还剩下的陆地就可以了。 在遇到地图周边陆地的时候,将1都变为0,此时地图为这样: 这里使用深搜 #include<bits/stdc++.h>us
阅读更多...
深度遍历-求“岛屿数量”
一、问题描述 二、解题思路 1.设置一个对应的boolean二维数组 isfind[][] ,用来标记已经遍历过的“岛屿” 2.使用双层循环遍历岛屿(grid)二维数组,当遇到 isfind[i][j]=false 时表示遇到一个新岛屿 3.当遇到新岛屿时进行深度递归遍历,向左、向上、向下、向右尝试“走动”,当新的 i,j位置 满足: (1) i、j满足二维数组的
阅读更多...
岛屿的最大面积(剑指Offer) -Java实现
文章目录 思路解题方法复杂度Code Problem: LCR 105. 岛屿的最大面积 思路 本题中说的是一个网格的岛屿,获取其中的岛屿的最大面积,是典型的图论的问题,可以采用广度优先搜索算法和深度优先算法,本文采用广度优先搜索算法 解题方法 ① 定义已经访问过的岛屿的二维布尔数组 ② 两层循环遍历网格,即第一层(最外层)循环是网格的行,第二层(最内层)循环是网格的列
阅读更多...
力扣200. 岛屿数量(BFS)
Problem: 200. 岛屿数量 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.定义方向数组:定义一个方向数组 DIRECTIONS,表示上、下、左、右四个方向的移动。 2.获取网格的行数和列数同时初始化一个计数器 numIslands 用于记录岛屿的数量。 3.使用两层循环遍历整个网格,如果遇到一个未访问的陆地 ‘1’,计数器
阅读更多...
leetcode79.单词搜索(回溯dfs)、200.岛屿数量
79.单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board = [ [‘A’,‘B’,‘C’,‘E’], [‘S’,‘F’,‘C’,‘S’], [‘A’,‘D’,‘E’,‘E’] ] 给定 word = “ABC
阅读更多...
强化训练:day7(字符串中找出连续最长的数字串、岛屿数量、拼三角)
文章目录 前言1. 字符串中找出连续最长的数字串1.1 题目描述1.2 解题思路1.3 代码实现 2. 岛屿数量2.1 题目描述2.2 题目描述2.3 代码实现 3. 拼三角3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 1. 字符串中找出连续最长的数字串 2. 岛屿数量 3. 拼三角 1. 字符串中找出连续最长的数字串 1.1 题目描述 1.
阅读更多...
LeetCode - 200. 岛屿数量
描述 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0"
阅读更多...
BFS专题——FloodFill算法:200.岛屿数量
文章目录 题目描述算法原理代码实现C++Java 题目描述 题目链接:200.岛屿数量 PS:注意题目中每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。也就是说斜角是不算了, 例如示例二,是三个岛屿。 算法原理 这道题目是 DFS,BFS,并查集,基础题目,因为本博客属于BFS专题,所以只会讲解如何用BFS解决,具体如下: 遍历整个矩阵,每次找到⼀块陆地的时候:
阅读更多...
leetcode---岛屿数量
. - 力扣(LeetCode) 代码: //岛屿题目的思想:二维矩阵图的DFS就是,上下左右遍历如果是0或者出界的话就return//规定的是陆地上下左右是水的话它就是岛屿。当遍历矩阵图中每一个点, //在调用递归算法之前结果加1,递归算法每次会把一个岛屿全部淹没 class Solution {public:int numIslands(vector<vector<char>>&
阅读更多...
力扣HOT100 - 200. 岛屿数量
解题思路: 岛屿题目一般使用dfs。 1.判断是否越界 2.用0,1,2三个状态标识当前格子的状态(三个状态比两个状态更清晰) 3.向周围四个方向遍历 class Solution {public int numIslands(char[][] grid) {int cnt = 0;for (int i = 0; i < grid.length; i++) {for (int
阅读更多...