1岛屿数量


题目很好理解,dfs来一套即可:
(1)二维的,没考虑特殊情况;
(2)对每个网格dfs,每次dfs往上下左右搜
(3)grid是list,在python里面会是一个全局,第一次搜到记一次搜到了一块岛屿,后面的dfs都是为了扫清上下左右的岛屿;
(4)dfs三要素:
a 如何结束
b 如何递归
c 如何剪枝,这里不需要

class Solution:def numIslands(self, grid: List[List[str]]) -> int:def dfs(x,y,flagfrist):if x<0 or x>=m or y<0 or y>=n:return if grid[x][y]=="1":if flagfrist==0:res.append(1)flagfrist=1grid[x][y]="0"dfs(x-1,y,flagfrist)dfs(x+1,y,flagfrist)dfs(x,y-1,flagfrist)dfs(x,y+1,flagfrist)m=len(grid)n=len(grid[0])res=[]for i in range(m):for j in range(n):dfs(i,j,0)return len(res)

2 岛屿中面积最大值


写dfs,把重点放在结束条件和如何递归上,多考虑搜索数结构,
能定义为全局变量的就定义为全局变量,需要往下一级递归的变量才定义为dfs函数的参数,不然会陷入乱糟糟的传参中!


class Solution:def maxAreaOfIsland(self, grid: List[List[str]]) -> int:def dfs(x,y):if x<0 or x>=m or y<0 or y>=n:return if grid[x][y]==1:area.append(1)grid[x][y]=0dfs(x-1,y)dfs(x+1,y)dfs(x,y-1)dfs(x,y+1)m=len(grid)n=len(grid[0])res=0for i in range(m):for j in range(n):area=[]dfs(i,j)res=max(len(area),res)return res

【算法题目】【DFS】岛屿数量 岛屿中面积最大值相关推荐

  1. 【算法题目】行列递增矩阵中查找一个数值 Python

    ref:https://blog.csdn.net/u010089444/article/details/70854510 所以(python): class Solution:def findNum ...

  2. 【LeetCode】岛屿(周长、数量、最大面积、封闭岛屿数)

    文章目录 岛屿的周长★ 岛屿数量★★ 岛屿数量Ⅱ★★★ 岛屿的最大面积★★ 统计封闭岛屿的数目★★ 岛屿的周长★ LeetCode463. 岛屿的周长 [题目]给定一个 row x col 的二维网格 ...

  3. java 完美洗牌,(2)数组相关算法题目

    数组是最简单的数据结构,占据连续内存并且按顺序存储. 以下是与数组有关的算法题目. (1)查询数组中重复数字 算法思路:(1)利用hash表,没有便放进去,有就返回(Java中HashMap存数字都是 ...

  4. C++练习15:求出一组数中的最大值

    C++练习15:求出一组数中的最大值 题目 思路 代码 题目 求出一组数中的最大值 思路 将数据储存在数组中,设第一个数据为max,利用for循环遍历数组中每个数据,若某个数据大于max,则将其赋值给 ...

  5. 岛屿类-网格类问题-DFS | 力扣200. 岛屿数量

    本文讲解200. 岛屿数量问题,属于常见的岛屿类-网格类问题 本题使用DFS的思想 1 题目 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量. 岛屿总是被水包围, ...

  6. 【算法思路】常见岛屿数量的算法题

    岛屿的最大面积 思路:dfs 两层遍历,遇到岛屿时,则进入深度优先遍历,也就是递归 岛屿深度优先遍历 判断是否越界,或者是不是岛屿,如果越界或者不是岛屿则返回 将该岛屿置为海洋,并将面积加一 从该岛屿 ...

  7. 岛屿问题 通用解-463.岛屿周长-200.岛屿数量-695.岛屿的最大面积-827.最大人工岛

    文章目录 岛屿问题 如何在网格上做DFS(通用解) 463.岛屿的周长 题目 题解 -通用模板 题解2 200.岛屿数量 题目 题解 695.岛屿的最大面积 题目 题解 827.最大人工岛 题目 题解 ...

  8. 广度+深度:岛屿的最大面积/岛屿数量

    给定一个包含了一些 0 和 1 的非空二维数组 grid . 一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻.你可以假设 grid ...

  9. [Leedcode][JAVA][第200题][岛屿数量][DFS][BFS][并查集]

    [问题描述] 第200题 岛屿数量 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量.岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成 ...

最新文章

  1. 从零开始学习Kafka
  2. 【LeetCode OJ 136】Single Number
  3. python判断英文
  4. Maven导入或新建项目时更改项目jdk版本
  5. java 三个版本区别_关于java三个版本的区别
  6. 【jquery】基于 jquery 实现 ie 浏览器兼容 placeholder 效果
  7. 《隐秘的角落》数学学霸朱朝阳如何炼成?这3招,你家孩子也能用上!
  8. mysql有热备设置_Mysql数据热备配置与操作方法
  9. C++第二次上机5-5
  10. MongoDB索引概念及使用详解
  11. 数据结构与算法(Python)第二天
  12. shiro-cas------整合springboot客户端
  13. bugku 杂项 流量分析(cnss)
  14. PHP 中移除微信emoji表情
  15. Java练习题_通过2月天数来判断平年闰年
  16. 【云原生之Docker实战】使用Docker部署家庭个人在线音乐平台
  17. 约会应用 Tinder 发展迅速
  18. 2021-05-11 MongoDB面试题 MongoDb中索引是什么
  19. 微信公众号ID也可以修改了!
  20. git命令切换分支、更新分支

热门文章

  1. 使用scrapy爬取指定内容相关的百度图片
  2. enq: TX - row lock contention等待事件
  3. 不断创新--才有好软件
  4. Android Menu用法全面讲解
  5. UE设置打开的文件默认高亮语言
  6. Android实现音乐播放器(包含窗口小组件)
  7. 湖南芒果代理php,芒果商城系统GSHOP php网店系统 UTF8
  8. 北斗导航 | 北斗三号(BDS-3)单频和双频RTK定位性能(论文学习)
  9. 我为什么推荐你使用kindle
  10. 设计模式之建造者模式(含链式调用)