leetcode刷题(javaScript)——回溯、递归、dfs相关场景题总结

回溯算法是对树形或者图形结构执行一次深度优先遍历,实际上类似枚举的搜索尝试过程,在遍历的过程中寻找问题的解。深度优先遍历有个特点:当发现已不满足求解条件时,就返回,尝试别的路径。此时对象类型变量就需要重置成为和之前一样,称为「状态重置」。

许多复杂的,规模较大的问题都可以使用回溯法,有「通用解题方法」的美称。实际上,回溯算法就是暴力搜索算法

当涉及到回溯、递归、深度优先搜索(DFS)相关的场景题时,通常可以将它们放在一起综合考虑,因为它们之间有一定的联系和相互影响。以下是一些相关的LeetCode场景题:

  • 组合、排列问题:组合总和、全排列。通常使用回溯算法来解决组合、排列问题。在回溯过程中,需要注意剪枝优化,避免重复计算。
  • 括号生成:解题技巧:使用递归和回溯算法生成有效的括号组合。在递归的过程中,需要考虑有效性条件,及时剪枝。
  • 岛屿问题:岛屿数量、岛屿的最大面积等。在DFS中,需要遍历地图上的每个点,将连通的岛屿标记并计数。
  • 子集、子集和:使用递归和回溯算法生成所有可能的子集&#x

你可能感兴趣的:(Leetcode刷题技巧总结,leetcode,深度优先,算法)