Advertisement

回溯法的三步走:(组合与子集)策略

阅读量:

理论

递归与回溯往往相互配合,递归过程中通常需要借助回溯进行处理。

回溯法属于一种基于穷举的搜索策略。

其适用范围涵盖:组合类问题、排列类问题、分割类问题、子集类问题以及棋盘布局类问题。

针对回溯法的应用,有时在条件发生变动时容易产生困惑。因此,关键在于探寻一种抽象层面的解决思路。

步骤

回溯法的运用具有较高的技巧性。通常情况下,我们旨在获取符合特定条件的多种情形的具体信息。然而,对于每道题目,都需要进行三个方面的分析。

0. 通过图形方式呈现回溯的全过程

1. 明确递归函数所涉及的参数及其返回值类型

2. 界定递归过程中的终止条件,以防止出现无限循环的情况

3. 确立每一层搜索过程中所执行的操作逻辑

复制代码
 void backtracking(参数)

    
 {
    
     if(终止条件)
    
     收集结果
    
     return;
    
     for(遍历元素)
    
     处理元素==》递归
    
     回溯
    
 }
    
    
    
    

例题

  1. 组合问题

Leetcode_77 组合为例。

  1. 在进行组合构

全部评论 (0)

还没有任何评论哟~