业界动态
【算法】深度优先搜索(DFS)
2024-11-14 21:41

  深度优先搜索是笔试面试中重点考察的内容。今天来讲解深度优先搜索的思想。这里推荐阅读《算法笔记》这本数,对考研机试和找工作中笔试面试常考算法都进行了通俗的讲解。公众号回复 801 获取 pdf。

【算法】深度优先搜索(DFS)

  深度优先搜索的思路很简单,以当前位置为起点,沿着一条路向前走,遇到岔路口,选择一条岔路前进。如果选择的这个岔路是死路(遇到了递归边界,那么就退回到刚刚的岔路口,选择另一个岔路口前进。如果岔路中存在新的岔路,那么也按照刚刚的方法枚举。这样一定能找到出口(目标解存在的情况下)。由于这种方法是不到死路(递归边界)不回头,因此是深度优先。

  深度优先搜索过程中通常会考察剪枝。因为深度优先搜索会搜索每一个可能的路径,复杂度很高,如果在一个岔路口能提前判断某条岔路下面不可能有出口(目标解,就能提前剪枝,跳过对这条岔路的搜索,降低复杂度。

  了解了深度优先搜索的基本思想之后,下面通过几道题来进行练习。

1.力扣133.克隆图[1]

给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。

图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。

class Node {   public int val;   public List neighbors; }

测试用例格式

简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1,第二个节点值为 2(val = 2,以此类推。该图在测试用例中使用邻接列表表示。

邻接列表 是用于表示有限图的无序列表的集合。每个列表都描述了图中节点的邻居集。

给定节点将始终是图中的第一个节点(值为 1)。你必须将 给定节点的拷贝 作为对克隆图的引用返回。

示例 1

 

示例 2

 

示例 3

 

示例 4

 

这道题可以用 DFS 很容易的做出来。沿着一条路向前,每次碰到节点就复制,并转向一条岔路,继续复制岔路的节点。如果这条岔路的所有节点都完成了复制,就返回之前的岔路口(节点,转型另一条岔路。代码如下

 
2.力扣200.岛屿的数量[2]

给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。

此外,你可以假设该网格的四条边均被水包围。

示例 1

 

示例 2

 

这也是一道典型的 DFS 的题。每次遇到陆地(值为 1)是一个岔路口,有 4 条岔路,即上下左右。分别沿着这四条岔路继续前进,直到遇到死路(边界或水)才返回。为了避免重复访问,也需要设置 visited 数组标记改节点是否被访问过,或者直接将 1 改为 0

 
Reference

[1]力扣133.克隆图:https://leetcode-cn.com/problems/clone-graph [2]力扣200.岛屿的数量:https://leetcode-cn.com/problems/number-of-islands

    以上就是本篇文章【【算法】深度优先搜索(DFS)】的全部内容了,欢迎阅览 ! 文章地址:http://syank.xrbh.cn/news/10539.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://kaire.xrbh.cn/ , 查看更多   
最新新闻
“刷抖音像小红书、外卖软件里看视频”,各大APP怎么越长越像了
本文来自公众号:Vista看天下(ID:vistaweek),惠通学子经授权转载这段时间上网冲浪的朋友们,沉浸式刷短视频的流畅体验经常被打
怎么提升淘宝店铺排名?店铺排名规则是什么?
随着电子商务的迅猛发展,越来越多的商家选择在淘宝平台上开设店铺。然而,在竞争激烈的市场中,如何提升淘宝店铺的排名成为了每
多模态数据融合深度学习模型的典型深度架构研究
1 介绍我们对世界的体验是多模态的 —— 我们看到物体,听到声音,感觉到质地,闻到气味,尝到味道。模态是指某件事发生或经历的
2024小学入学指南 | 青岛民办小学热度排行榜!
明悦给大家汇总了2023年比较热门的民办小学及部分公办学校排行,2024年小学入学的家长们可做参考哦~扫码进入2024年青岛小学入学
一站式数据智能平台概念及能力
导读:一站式数据智能平台依靠一体化管理,融合数智化工具,向不同行业用户提供专业的、覆盖数据全生命周期的
国内3大自助建站平台测评
​​国内3大自助建站平台测评:云梦微站(云梦网络)、建站快车(凡科)、建站之星(美橙互联)【前言】截至2016年底,根据CNNIC
《2020年直播带货趋势报告》发布:薇娅李佳琦辛巴销售超400亿
  来源:21世纪经济报道  直播行业站上风口,在电商消费领域有极大的消费者购买与转化空间。   以电商直播为代表的网络直
中央说的瞪羚企业、独角兽企业们
中央会议如此强调,要支持发展瞪羚企业,到底什么是瞪羚企业?什么是瞪羚企业?瞪羚是一种善于跳跃和奔跑,体质强壮,是非常敏捷
30个场景营销案例,绝对的干货(建议收藏)
“场景感”这个词成为如今最流行的词汇。产品要有场景感,这样才有故事、有个性,有温度,容易成为爆品。——产品即场景。制造场
乡镇统计工作总结汇报
工作总结是做好各项工作的重要环节。通过工作总结,可以明确下一步工作的方向,少走弯路,少犯错误,提高工作效益。下面是小编为
本企业新闻
推荐企业新闻

点击拨打: