首页 > 编程语言 >深度优先搜索+算法设计+python

深度优先搜索+算法设计+python

时间:2024-07-13 22:00:26浏览次数:21  
标签:优先 python 值为 岛屿 len 算法 grid def

一、问题描述

小明想知道哪个岛是最大的岛屿,请你用深度优先遍历算法来帮助他。如图所示,为了方便计算,我们使用一个二维数组来表示一片海域,用0表示水面,用1表示陆地,我们的任务是找出其中最大的岛屿。注意,岛屿是指上下左右四个方向相连接的陆地区域。

二、问题求解

def largest_island(grid):
    # 定义深度优先搜索(DFS)函数,用于计算单个岛屿的面积
    def dfs(x, y):
        # 检查边界条件,如果越界或该位置是海域(值为0),则返回0
        if x < 0 or x >= len(grid) or y < 0 or y >= len(grid[0]) or grid[x][y] == 0:
            return 0
        # 将当前岛屿位置标记为已访问(值为0),以避免重复计算
        grid[x][y] = 0  
        # 递归地计算相邻四个方向的岛屿面积,并加上当前位置

标签:优先,python,值为,岛屿,len,算法,grid,def
From: https://blog.csdn.net/weixin_75253037/article/details/140407042

相关文章

  • 【CPO-TCN-BiGRU-Attention回归预测】基于冠豪猪算法CPO优化时间卷积双向门控循环单元
    %数据准备%假设有一个输入变量X和一个目标变量Y%假设数据已经存储在X和Y中,每个变量为列向量%参数设置inputWindowSize=10;%输入窗口大小outputWindowSize=1;%输出窗口大小numFeatures=1;%输入变量的数量numFilters=32;%TCN中的滤波器数......
  • 模型部署 - TensorRT - C++版本与Python版本应如何选择
    从性能角度来看,TensorRTC++版本和Python版本之间确实存在一些差异:C++版本性能更优:TensorRTC++版本使用了更底层的API,可以更好地利用硬件特性,进行更深层的优化。C++版本在内存管理、CPU-GPU数据传输等方面更加高效,这些都可以带来更好的推理性能。Python版本更易......
  • python的列表生成式
    文章目录python的列表生成式1.创建列表2.筛选偶数3.生成99乘法表4.列表推导式中的嵌套循环python的列表生成式Python列表生成式(ListComprehensions)是一种简洁且易于阅读的语法,用于从其他可迭代对象创建列表。它们提供了一种非常Pythonic的方式来创建列表,尤其是......
  • 24暑假算法刷题 | Day11 | LeetCode 150. 逆波兰表达式求值,239. 滑动窗口最大值,347.
    目录150.逆波兰表达式求值题目描述题解239.滑动窗口最大值题目描述题解347.前K个高频元素题目描述题解150.逆波兰表达式求值点此跳转题目链接题目描述给你一个字符串数组tokens,表示一个根据逆波兰表示法表示的算术表达式。请你计算该表达式。返回一个......
  • 24暑假算法刷题 | Day9 | LeetCode 151. 反转字符串中的单词,28. 找出字符串中第一个匹
    目录151.反转字符串中的单词题目描述题解28.找出字符串中第一个匹配项的下标题目描述题解459.重复的子字符串题目描述题解卡码网55.右旋字符串题目描述题解151.反转字符串中的单词点此跳转题目链接题目描述给你一个字符串s,请你反转字符串中单词的顺......
  • Python学习笔记36:进阶篇(二十五)pygame的使用之事件监听控制切歌和暂停,继续播放
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......
  • 对红酒品质进行数据分析(python)
    http://t.csdnimg.cn/UWg2S数据来源于这篇博客,直接下载好csv文件。这篇内容均在VScode的jupyternotebook上完成,操作可以看我的另一篇博客:http://t.csdnimg.cn/69sDJ一、准备工作1.导入数据库#功能是可以内嵌绘图,并且可以省略掉plt.show()这一步,具体作用是当你调用matplo......
  • Day66 代码随想录打卡|回溯算法篇---分割回文串
    题目(leecodeT131):给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串。返回 s 所有可能的分割方案。方法:本题是一个分割回文串的问题,是回溯算法的另一类问题。针对一个字符串,我们要对其进行分割,并且确保分割后生成的子串也必须全都是回文串。分析回溯三......
  • 0基础学python-10:函数的定义,调用以及参数
    目录前言1.函数的定义2.函数的调用3.函数的参数<1>必选参数<2 >默认参数<3> 可变参数<4>关键字参数 <5> 命名关键字参数 4.注意事项前言        函数是一段完成特定任务的代码块,可以通过定义、调用和传递参数来实现代码的模块化和......
  • 基于python的学生成绩管理系统(GUI)
     利用python语言实现成绩管理系统的实现,以某班学生为例,实现以下功能:(1)   添加学生信息以及其九科成绩信息;(2)   将学生信息保存在文件中;(3)   修改和删除学生信息;(4)   查询学生信息;(5)   显示已经添加的所有学生信息。设计要求:1.具有主菜单界面显示。2.有......