题目描述: 请编写一个递归函数,用来输出n个元素的所有子集。例如,三个元素{a,b,c}的所有子集是:{},{a},{b},{c},{a,c},{ac},{b,c},{a,b,c}. 解题思路: 根据子集的定义,集合中的每一个元素在子集中都有两种状态:‘1’表示出现,'0'表示不出现;如果所有的元素 ...
分类:
其他好文 时间:
2019-02-02 19:17:47
阅读次数:
202
算法描述: Given a string containing only digits, restore it by returning all possible valid IP address combinations. Example: 解题思路:题目要求所有可能的结果,首先想到回溯法。重点有 ...
分类:
其他好文 时间:
2019-02-02 14:17:56
阅读次数:
209
上下文管理器 "原理" "代码讲解" 原理 上下文管理能保证资源会被正确回收,即保证退出步骤的执行。其用处最多的是, 作为确保资源被正确回收的一种方式。 一种重复使用的 结构的有效机制,因为其功能是封闭代码,且可以填充 任意格式的代码块。 语法上 不接受其余参数 ,除了自带的 之外, 在不包括sel ...
分类:
编程语言 时间:
2019-02-02 12:39:22
阅读次数:
185
回溯: 递归调用代表开启一个分支,如果希望这个分支返回后某些数据恢复到分支开启前的状态以便重新开始,就要使用到回溯技巧,全排列的交换法,数独,部分和,用到了回溯。下一个状态在开始之前需要利用到之前的状态,此时需要进行回溯,因为之前的状态对现在的状态存在着影响。 剪枝: 深度优先搜索的时候如果已经明确 ...
分类:
其他好文 时间:
2019-02-02 00:21:19
阅读次数:
225
DFS(深度优先搜索): 深度优先搜索算法(英语:Depth-First-Search,简称DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行 ...
分类:
其他好文 时间:
2019-02-01 17:10:22
阅读次数:
213
串松门 标签是树形dp,但其实没啥必要用dp。 显然数据给出的是树形结构,要求所有叶子节点到根节点路径长度相同,可以想到自下向上地进行维护。 首先从根节点dfs,找到叶子节点后向上回溯,先维护父节点的所有子节点到父节点最大边权。 然后维护ans,ans为最大边权减去所有到子节点的边权。因为边权只能增 ...
分类:
其他好文 时间:
2019-01-31 10:35:31
阅读次数:
193
题意:从左下方的1开始,一笔画出圣诞老人的房子。 ...
分类:
其他好文 时间:
2019-01-31 00:08:45
阅读次数:
166
简介 KMP算法是D.E.Knuth、J.H.Morris和V.R.Pratt共同提出的,称之为Knuth-Morris-Pratt算法,简称KMP算法。该算法与Brute-Force算法相比有较大改进,主要是消除了主串指针的回溯,从而使算法效率有了某种程度的提高。 实现 1、从模式串t中提取加速匹 ...
分类:
编程语言 时间:
2019-01-30 19:11:11
阅读次数:
188
#!一个序列S任意删除若干个字符得到的新序列T,则T叫做S的子序列 注意,这个和最长公共字串不一样,最长公共子串要求连续。 1.算法公式: 这里只是返回最大长度,如果求最大子序列,还需要进行回溯。 ...
分类:
编程语言 时间:
2019-01-30 15:48:47
阅读次数:
210
回溯 八皇后 题意 棋子不能在同一行,同一列,以及同一对角线。 输出所有符合要求的情况。 步骤 :用计数器统计次数,按列写出全排列,再枚举任意两个棋子,如果不符合条件,则计数器不变。与直接递归不同的是,用到了剪枝技巧,如果不符合要求,则立即开始下一个状况 include include const ...
分类:
其他好文 时间:
2019-01-30 01:30:02
阅读次数:
158