回溯算法的一个总结

Posted beeenwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回溯算法的一个总结相关的知识,希望对你有一定的参考价值。

回溯算法的模板:

result = []

def backtrack(路径, 选择列表):

????if 满足结束条件:{

????????result.add(路径)

????????return

? ? }

?

? ? //每个for代表的其实就是一位,由这个for引出的下一个backtrack就是这位的下一位

????for 选择 in 选择列表:{

????????做选择

????????backtrack(路径, 选择列表)

????????撤销选择

? ? }

?

问题一:子集

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

说明:解集不能包含重复的子集。

技术图片

?

?

问题二:子集 II

给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

说明:解集不能包含重复的子集。

技术图片

?

问题三:组合

给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。

技术图片

?

?

问题四:全排列

给定一个 没有重复 数字的序列,返回其所有可能的全排列。

技术图片

?

问题五:格雷编码

格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。

给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。

格雷编码序列必须以 0 开头。

技术图片

以上是关于回溯算法的一个总结的主要内容,如果未能解决你的问题,请参考以下文章

day26 回溯算法的部分总结

算法-回溯回溯总结

回溯算法总结

leetcode算法题基础(四十三) 回溯算法总结

leetcode算法题基础(四十四) 回溯算法总结

leetcode算法题基础(四十五) 回溯算法总结 回溯法的解空间表示方法