广度优先搜索(BFS)

news2024/9/24 15:27:43

力扣刷题之旅:进阶篇(二)

继续我的力扣刷题之旅,我在进阶篇的第一部分中深入探索了BFS(广度优先搜索)算法,并感受到了它在图形搜索中的强大威力。现在,我进入了进阶篇的第二部分,准备迎接更多挑战和机遇。

一、深入图算法

在进阶篇的第二部分,我更加深入地研究了图算法。除了BFS,我还学习了DFS(深度优先搜索)算法,并对比了它与BFS的不同之处。DFS是一种用于遍历或搜索树或图的算法,它沿着树的深度遍历树的节点,直到达到目标节点或遍历完所有节点。

通过对比BFS和DFS,我发现了它们在应用场景上的区别。BFS适用于寻找最短路径、查找最近邻节点等问题,而DFS则更适用于解决需要深入搜索的问题,如寻找图中的环、判断二叉树是否为平衡树等。

此外,我还学习了其他图算法,如拓扑排序、最小生成树等。这些算法在图论中有着广泛的应用,如网络优化、社交网络分析、图像处理等。

二、动态规划的进阶

在进阶篇的第一部分中,我已经初步了解了动态规划的基本概念和应用。在第二部分中,我进一步深入学习了动态规划的高级技巧和优化方法。

我学习了如何运用动态规划解决一些更复杂的问题,如背包问题、最长递增子序列等。在解决这些问题的过程中,我不断尝试优化状态转移方程,减少重复计算,提高算法的效率。

同时,我还学习了动态规划的空间优化技巧,如滚动数组等。这些技巧可以帮助我们减少算法的空间复杂度,提高代码的运行效率。

三、算法设计与分析

在进阶篇的第二部分,我还开始接触算法设计与分析的相关知识。我学习了如何根据问题的特点选择合适的算法,并对算法的性能进行分析和评估。

我学习了算法的时间复杂度和空间复杂度的概念和分析方法,了解了如何通过优化算法来降低时间复杂度和空间复杂度。同时,我还学习了算法的正确性证明和复杂度证明等相关知识。

四、未来的展望

在进阶篇的第二部分中,我取得了很大的进步,但也遇到了很多挑战和困难。我相信,在未来的刷题之旅中,我会继续努力,不断突破自己,掌握更多的算法和数据结构。

同时,我也希望能够与更多的编程爱好者一起交流和分享刷题经验,共同进步。我相信,在力扣这个平台上,我们可以相互学习、相互鼓励,成为更好的编程师。

总的来说,力扣的刷题之旅是一次充满挑战和收获的旅程。通过不断学习和实践,我不仅提升了自己的编程技能,还培养了自己的逻辑思维和解决问题的能力。在未来的日子里,我会继续坚持刷题,探索更多的算法和数据结构,为自己的编程之路不断添砖加瓦。

from collections import deque  
  
def bfs(graph, start):  
    visited = set()  
    queue = deque([start])  
      
    while queue:  
        vertex = queue.popleft()  
        print(vertex, end=" ")  
          
        for neighbor in graph[vertex]:  
            if neighbor not in visited:  
                visited.add(neighbor)  
                queue.append(neighbor)  
  
# 示例图的邻接表表示  
graph = {  
    'A': ['B', 'C'],  
    'B': ['A', 'D', 'E'],  
    'C': ['A', 'F'],  
    'D': ['B'],  
    'E': ['B', 'F'],  
    'F': ['C', 'E'],  
}  
  
bfs(graph, 'A')  # 输出: A B C D E F

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1439335.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

百卓Smart管理平台 uploadfile.php 文件上传漏洞复现(CVE-2024-0939)

0x01 产品简介 百卓Smart管理平台是北京百卓网络技术有限公司(以下简称百卓网络)的一款安全网关产品,是一家致力于构建下一代安全互联网的高科技企业。 0x02 漏洞概述 百卓Smart管理平台 uploadfile.php 接口存在任意文件上传漏洞。未经身份验证的攻击者可以利用此漏洞上传…

单片机无线发射的原理剖析

目录 一、EV1527编码格式 二、OOK&ASK的简单了解 三、433MHZ 四、单片机的地址ID 五、基于STC15W104单片机实现无线通信 无线发射主要运用到了三个知识点:EV1527格式;OOk;433MHZ。下面我们来分别阐述: EV1527是数据的编…

Stable Diffusion 模型下载:Samaritan 3d Cartoon SDXL(撒玛利亚人 3d 卡通 SDXL)

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 由“PromptSharingSamaritan”创作的撒玛利亚人 3d 卡通类型的大模型,该模型的基础模型为 SDXL 1.0。 条目内容类型大模型基础模型SDXL 1.0来源CIVITA…

IDEA创建Java类时自动添加注释(作者、年份、月份)

目录 IDEA创建Java类时自动添加注释(作者、年份、月份)如图: IDEA创建Java类时自动添加注释(作者、年份、月份) 简单记录下,IDEA创建Java类时自动添加注释(作者、年份、月份)&#…

@PostMapping/ @GetMapping等请求格式

目录 1.只传一个参数的 第一种 第二种 第三种:表单 2.传整个对象的 2.1修改实体类就是传整个对象过来 2.2新增实体类就是传整个对象过来新增 1.只传一个参数的 第一种 PostMapping("/add/{newsId}")public Result addOne(PathVariable Integer newsId) {}pos…

Spring + Tomcat项目中nacos配置中文乱码问题解决

实际工作的时候碰到了nacos中文乱码的问题,一顿排查最终还是调源码解决了。下面为具体的源码流程,有碰到的可以参考下。 对于nacos配置来说,初始主要源码就在NacosConfigService类中。里面有初始化获取配置content以及设置对应监听器的操作。…

windows中的apache改成手动启动的操作步骤

使用cmd解决安装之后开机自启的问题 services.msc 0. 这个命令是打开本地服务找到apache的服务名称 2 .通过服务名称去查看服务的状态 sc query apacheapache3.附加上关掉和启动的命令(换成是你的服务名称) 关掉命令 sc stop apacheapache启动命令 …

金融行业专题|证券超融合架构转型与场景探索合集(2023版)

更新内容 更新 SmartX 超融合在证券行业的覆盖范围、部署规模与应用场景。新增操作系统信创转型、Nutanix 国产化替代、网络与安全等场景实践。更多超融合金融核心生产业务场景实践,欢迎阅读文末电子书。 在金融行业如火如荼的数字化转型大潮中,传统架…

使用Python语言生成区块链地址

# 单次运行 import binascii import sha3 from ecdsa import SigningKey, SECP256k1priv SigningKey.generate(curveSECP256k1) # 生成私钥 pub priv.get_verifying_key() # 生成公钥keccak sha3.keccak_256() keccak.update(pub.to_string()) # keccak_256哈希运算 addr…

STM32学习笔记——定时器

目录 一、定时器功能概述 1、基本定时器(TIM6&TIM7) 工作原理 时序 2、通用计时器(TIM2&TIM3&TIM4&TIM5) 时钟源 外部时钟源模式1&2 外部时钟源模式2 外部时钟源模式1 定时器的主模式输出 输入捕获…

春节回家坐飞机后助听器就不好用了?如何过安检、拖运?

春节即将来临,很多人都要乘坐飞机回家或者出游。如果你是一位助听器使用者,你可能会有一些疑问:坐飞机能戴助听器吗?助听器会不会受到安检设备的影响?直接将助听器放在传送带上可以吗?……别担心&#xff0…

前端JavaScript篇之addEventListener()方法的参数和使用

目录 addEventListener()方法的参数和使用参数和使用typelisteneroptionsuseCapturewantsUntrusted addEventListener()方法的参数和使用 addEventListener() 是 JavaScript 中用于向指定元素添加事件监听器的方法。这个方法通常用于处理用户交互,比如点击、鼠标悬…

springboot163美食推荐商城的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

日历功能——C语言

实现日历功能&#xff0c;输入年份月份&#xff0c;输出日历 #include<stdio.h>int leap_year(int year) {if(year % 4 0 && year % 100 ! 0 || year % 400 0){return 1;}else{return 0;} }int determine_year_month_day(int *day,int month,int year) {if(mo…

计划任务功能优化,应用商店上架软件超过100款,1Panel开源面板v1.9.6发布

2024年2月7日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.9.6版本。 在v1.9.5和v1.9.6这两个小版本中&#xff0c;1Panel针对计划任务等功能进行了多项优化和Bug修复。此外&#xff0c;1Panel应用商店新增了3款应用&#xff0c;上架精选软件应用超过1…

vue 实现一个持续时间定时器组件

vue 实现一个定时器组件 效果图子组件父组件 效果图 子组件 新建一个timer.vue文件 <template><span :class"{red: string > 600}">{{ string | formatDurationS }}</span> </template> <script>export default {name: timer,pro…

Redis篇之持久化

一、为什么要进行持久化 Redis是一个基于内存的键值存储系统&#xff0c;但为了保证数据在服务器重启、故障等情况下不丢失。 二、应该怎么持久化 1.RDB持久化 &#xff08;1&#xff09;RDB是什么 RDB全称Redis Database Backup file&#xff08;Redis数据备份文件&#xff…

互联网加竞赛 基于深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的视频多目标跟踪实现 …

VRRP配置

目录 网络拓扑图 配置要求 配置步骤 网络拓扑图 配置要求 按照图示配置 IP 地址和网关在 SW1&#xff0c;SW2&#xff0c;SW3 上创建 Vlan10 和 Vlan20&#xff0c;对应 IP 网段如图&#xff0c;交换机之间链路允许所有 VLAN 通过在 SW1 和 SW2 上配置 VRRP&#xff0c;要求…

qt/c++实现表情选择框

&#x1f482; 个人主页:pp不会算法^ v ^ &#x1f91f; 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 &#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 实现功能 。编解码的设计 。映射关系设计 。匹配机制设计 演示效…