首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Leetcode 200 Number of Islands 岛的个数

“Leetcode 200 Number of Islands 岛的个数” 01 — 题目描述: 给出一个2D的地图,由陆地(1)和水(0)组成,数出岛的个数.一个岛被水环绕并且与相邻的陆地连接...你可以假设方阵的四周被水环绕. ? 02 — 题目分析: ? 采用广度优先遍历的方法还是很容易解决这个问题的 ? 03 — 算法 1....遍历每一个结点,如果某结点是陆地且未访问过,岛数目加1,修改未访问标志位,然后把该点放入队列中,以备扩展岛屿使用,进入2 2..../ 记录是否访问过 vector > visited(rows, vector(cols, false)); // 用于遍历某一个岛相连接的所有岛...q.push(j); visited[i][j] = true; // 修改访问标志 ++count; // 小岛数量加

1.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Leetcode 447. 回旋镖的数量

    题目描述 给定平面上 n 对不同的点,“回旋镖” 是由点表示的元组 (i, j, k) ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺序)。 找到所有回旋镖的数量。...你可以假设 n 最大为 500,所有点的坐标在闭区间 [-10000, 10000] 中。...0,0],[1,0],[2,0]] 输出: 2 解释: 两个回旋镖为 [[1,0],[0,0],[2,0]] 和 [[1,0],[2,0],[0,0]] 解法 根据题意可知,数组中存在 n 个不同的点...,以数组中某一个点为中心,若存在两个点到该中心点的距离相同,则存在两个回旋镖(因为考虑了回旋镖的点顺序)。...所以不妨求出数组中每个点到中心点的距离,若存在 x 个点到该中心点的距离相同,则存在 x*(x-1) 个回旋镖。

    39410

    LeetCode 200. 岛屿数量(图的遍历)

    题目信息 给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。...示例 1: 输入: 11110 11010 11000 00000 输出: 1 示例 2: 输入: 11000 11000 00100 00011 输出: 3 来源:力扣(LeetCode)...链接:https://leetcode-cn.com/problems/number-of-islands 著作权归领扣网络所有。...解题 2.1 DFS 图的连通性问题,主程序启动DFS,一次搜索中,遇到1的点将其置为0(只寻找1的点),后面不会再重复查找,对上下左右的点(如果存在且为1)递归查找。...BFS,对点1的四周存在且为1的点入队,迭代查找 竟然超时了,有坑的代码请查看我的解题评论。

    48510

    【多源BFS问题】飞地的数量

    飞地的数量 1020. 飞地的数量 ​ 给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个海洋单元格、1 表示一个陆地单元格。 ​...一次 移动 是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过 grid 的边界。 ​ 返回网格中 无法 在任意次数的移动中离开网格边界的陆地单元格的数量。...被围绕的区域 是基本一样的,只不过要求的是被包围岛屿一共有的土地数量!所以这里的正难则反的思想是不难想到的,因为我们有经验了,如果还想不起来的话可以去参考一下 130. 被围绕的区域 的笔记! ​...(不需要一层一层处理队列,直接批处理即可) 统计被包围的岛屿内的飞地数量 ​ 具体步骤再参考代码,并不难,实际上多源 BFS 要比单源 BFS 写起来要简单的多!...统计被包围的岛屿内的飞地数量 int ret = 0; for(int i = 0; i < m; ++i) { for(int

    8010

    Linux系统的文件句柄数量问题

    在Linux下面部署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题,其实Linux是有文件句柄限制的(就像WinXP?)...,而且默认不是很高,一般都是1024,作为一台生产服务器,其实很容易就达到这个数量,因此我们需要把这个值改大一些。...大概知道ulimit这个命令是相关的,上Google搜索了一下,大多数说的很含糊,也没有统一说一下,经过两个小时看了不少文章终于弄清楚ulimit相关的一些配置问题。...我们可以用ulimit -a来查看所有限制值,我只关心文件句柄数量的问题 open files (-n) 1024 这个就是限制数量 这里,有很多ulimit的文章都说的很含糊,究竟这个1024...sys/fs/file-nr 只读,可以看到整个系统目前使用的文件句柄数量 查找文件句柄问题的时候,还有一个很实用的程序lsof 可以很方便看到某个进程开了那些句柄 也可以看到某个文件/

    4.3K10

    ​LeetCode刷题实战447:回旋镖的数量

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...今天和大家聊的问题叫做 回旋镖的数量,我们先来看题面: https://leetcode-cn.com/problems/number-of-boomerangs/ You are given n points...回旋镖 是由点 (i, j, k) 表示的元组 ,其中 i 和 j 之间的距离和 i 和 k 之间的欧式距离相等(需要考虑元组的顺序)。 返回平面上所有回旋镖的数量。...; 每个距离作为键,点个数作为值,故而采用哈希表的方式进行存储; 如果存在n个点与某一点的距离相等,则由排列组合可得n*(n-1)种排列方式,即存在n*(n-1)种回旋镖 class Solution...,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。

    20740

    Python3的编码问题

    ​介绍Python3中的编码问题前,第一个段落对字节、ASCII​与Unicode与UTF-8等进行基本介绍,如果不对这几种编码犯头晕,可直接跳过。...因为针对的是空间浪费问题,因此这种UTF-8编码是可变长短的,从英文字母的一个字节,到中文的通常的三个字节,再到某些生僻字的六个字节。...解决了空间问题,UTF-8编码还有一个神奇的附加功能,那就是兼容了老大哥的ASCII编码。一些老古董软件现在在UTF-8编码中可以继续工作。...Python3中的默认编码 Python3中默认是UTF-8,我们通过以下代码: import sys sys.getdefaultencoding() 可查看Python3的默认编码。​...这里说下hex,是用来转换成十六进制的函数,学过单片机的人对hex肯定不会陌生。 最后的扩展,在网上看到的他人的问题。我们写下类似于'\u4e2d'的字符,Python3知道我们想表达什么。

    1.1K10

    LeetCode 1196. 最多可以买到的苹果数量(贪心)

    题目 楼下水果店正在促销,你打算买些苹果,arr[i] 表示第 i 个苹果的单位重量。 你有一个购物袋,最多可以装 5000 单位重量的东西,算一算,最多可以往购物袋里装入多少苹果。...示例 1: 输入:arr = [100,200,150,1000] 输出:4 解释:所有 4 个苹果都可以装进去,因为它们的重量之和为 1450。...示例 2: 输入:arr = [900,950,800,1000,700,800] 输出:5 解释:6 个苹果的总重量超过了 5000,所以我们只能从中任选 5 个。...提示: 1 <= arr.length <= 10^3 1 <= arr[i] <= 10^3 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems...解题 先拿轻的,能拿最多的个数 class Solution { public: int maxNumberOfApples(vector& arr) { sort(arr.begin

    99320

    LeetCode 418. 屏幕可显示句子的数量(DP)*

    题目 给你一个 rows x cols 的屏幕和一个用 非空 的单词列表组成的句子,请你计算出给定句子可以在屏幕上完整显示的次数。 注意: 一个单词不能拆分成两行。...单词在句子中的顺序必须保持不变。 在一行中 的两个连续单词必须用一个空格符分隔。 句子中的单词总量不会超过 100。 每个单词的长度大于 0 且不会超过 10。...: 输入: rows = 2, cols = 8, 句子 sentence = ["hello", "world"] 输出: 1 解释: hello--- world--- 字符 '-' 表示屏幕上的一个空白位置...来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/sentence-screen-fitting 著作权归领扣网络所有。...解题 参考大佬的题解 先看看1行能不能放下完整的句子 然后不能放下完整句子的空位,从 i 单词开始放(i=0…n-1),下一行的开头是哪个单词 class Solution { public:

    1.1K10

    LeetCode 694. 不同岛屿的数量(BFSDFS+set)

    题目 给定一个非空01二维数组表示的网格,一个岛屿由四连通(上、下、左、右四个方向)的 1 组成,你可以认为网格的四周被海水包围。 请你计算这个网格中共有多少个形状不同的岛屿。...两个岛屿被认为是相同的,当且仅当一个岛屿可以通过平移变换(不可以旋转、翻转)和另一个岛屿重合。 样例 1: 11000 11000 00011 00011 给定上图,返回结果 1。...注意: 11 1 和 1 11 是不同的岛屿,因为我们不考虑旋转、翻转操作。 注释 : 二维数组每维的大小都不会超过50。...来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/number-of-distinct-islands 著作权归领扣网络所有。...解题 记录开始BFS或DFS的起点,后续点跟起点做差,存储路径到set中去重,返回 set 的大小 2.1 BFS class Solution { public: int numDistinctIslands

    1.1K20

    LeetCode 5968. 银行中的激光束数量

    题目 银行内部的防盗安全装置已经激活。 给你一个下标从 0 开始的二进制字符串数组 bank ,表示银行的平面图,这是一个大小为 m x n 的二维矩阵。...满足 r1 的 所有 行 i ,都 没有安全设备 。 激光束是独立的,也就是说,一个激光束既不会干扰另一个激光束,也不会与另一个激光束合并成一束。 返回银行中激光束的总数量。...1 <= m, n <= 500 bank[i][j] 为 '0' 或 '1' 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/number-of-laser-beams-in-a-bank...解题 根据题意,就是找出 1 的数量不为0的行,这些新的行相邻的行之间的1的个数相乘的总和就是答案 class Solution: def numberOfBeams(self, bank: List...[i-1]*nonzero[i]; return ans 104 ms 16.2 MB Python3 ---- 我的CSDN博客地址 https://michael.blog.csdn.net

    38730

    如何控制golang协程的并发数量问题

    问题 最近搞压测,写了一个压测的工具,就是想通过go来实现一秒发多少个请求,然后我写了一段这样的代码,如下,当然压测的代码我就没有贴了,我贴了主要核心代码,主要是起一个定时器,然后通过但仅此去读定时器的通道...,这个是标准输出造成的。...解决方案 1:不同的应用程序,消耗的资源是不一样的。比较推荐的方式的是:应用程序来主动限制并发的协程数量。 关于上面的问题代码我们进行优化,通过channel来控制并发数。...make(chan struct{}, 300) 创建缓冲区大小为 300 的 channel,在没有被接收的情况下,至多发送 300 个消息则被阻塞。...2:调整系统资源的上限 可以使用 ulimit -n 999999,将同时打开的文件句柄数量调整为 999999 来解决这个问题

    2.2K40
    领券