一、什么是深度优先遍历(DFS)
以“深度”为第一关键词,每次都沿路径到不能再前进时,才退回到最近的岔路口,然后继续按同样的逻辑搜索。
二、题目与解答
题目:
Leetcode 695. 岛屿的最大面积
解答思路:
首先要遍历数组,当发现(i,j)对应为陆地时,进行如下步骤:
(1)递归解法
递归解法最重要的是首先要确定递归边界。
该题有两个递归边界:
一个是矩阵尺寸限制,
一个是碰到了水域
一般来说,深度优先搜索类型的题可以分为主函数和辅函数,
主函数用于遍历所有的搜索位置,判断是否可以开始搜索,如果可以即在辅函数进行搜索。
辅函数则负责深度优先搜索的递归调用
本题中主函数为:
辅函数为:int IsIlandDFS(vector<vector<int>>& grid, int i, int j); 其中i, j 代表当前坐标。
参考视频:
https://leetcode.cn/problems/max-area-of-island/solution/dao-yu-de-zui-da-mian-ji-by-leetcode-solution/
标签:优先,函数,递归,695,DFS,搜索,搜素,深度 From: https://www.cnblogs.com/spacerunnerZ/p/16972417.html