码迷,mamicode.com
首页 > 编程语言 > 详细

回溯算法的一个总结

时间:2020-06-10 21:01:59      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:条件   路径   说明   开头   image   com   ola   strong   size   

回溯算法的模板:

result = []

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

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

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

????????return

? ? }

?

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

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

????????做选择

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

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

? ? }

?

问题一:子集

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

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

技术图片

?

?

问题二:子集 II

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

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

技术图片

?

问题三:组合

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

技术图片

?

?

问题四:全排列

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

技术图片

?

问题五:格雷编码

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

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

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

技术图片

回溯算法的一个总结

标签:条件   路径   说明   开头   image   com   ola   strong   size   

原文地址:https://www.cnblogs.com/beeenwei/p/13088676.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!