随笔分类 -  递归

摘要:"46. Permutations" "47. Permutations II" 和 "Combination Sum II" 是类似的,只用递归重复数字的第一个数字,后面都是重复的解。 阅读全文
posted @ 2019-03-10 18:58 ACLJW 阅读(181) 评论(0) 推荐(0)
摘要:"39. Combination Sum" 这道题就是简单的回溯,需要注意的是为了避免重复结果以及降低时间复杂度,可以先对cans数组进行排序,然后每次回溯的时候从chs数组的最后一个元素在cans数组中的位置开始进行,这样就保证了解序列是升序,从而避免了重复回溯,因此也减少了时间。 阅读全文
posted @ 2019-03-08 10:44 ACLJW 阅读(237) 评论(0) 推荐(0)
摘要:Spatial Structures#includeusing namespace std;const int maxn = 64 + 5;int n,len;int seq[maxn*maxn];char img[maxn][maxn];struct node{ ... 阅读全文
posted @ 2018-08-11 23:26 ACLJW 阅读(176) 评论(0) 推荐(0)
摘要:Tree Recovery#includeusing namespace std;const int maxn = 30;struct node{ char c; struct node* l = NULL; struct node* r = NUL... 阅读全文
posted @ 2018-08-08 23:53 ACLJW 阅读(276) 评论(0) 推荐(0)
摘要:Ancient Messages数一数就能发现,题目表中的6个符号从左到右依次有1,3,5,4,0,2个洞,各不相同。这样,只需要数一数输入的符号有几个“白洞”,就能准确地知道它是哪个符号了。至于具体实现,我的思路是:先确定一个符号,找到该符号的空洞个数然后将该符号“... 阅读全文
posted @ 2018-06-02 23:53 ACLJW 阅读(185) 评论(0) 推荐(0)
摘要:Quadtrees建树递归,合并也递归。在合并的时候要注意只有两个没有子节点的节点之间才可以合并,可能会遇到三种情况:1. 两个都是最小单元(相对本身),直接合并;2. 其中一个有子节点,依次其将其子节点与另一个节点合并;3. 两个都有子节点,依次将其子节点按顺序进行... 阅读全文
posted @ 2018-05-31 23:22 ACLJW 阅读(107) 评论(0) 推荐(0)
摘要:The Falling Leaves这道题还是递归,仿照上道题的思路挺容易的,不过看了看书上的代码个人觉得我的代码更简洁,思路更清晰些哈哈。我的思路:开个负下标数组,记录每个位置的权重之和,用 p 记录当前节点位置,那么其左节点位置为 p - 1,右节点位置为 p +... 阅读全文
posted @ 2018-05-31 13:26 ACLJW 阅读(126) 评论(0) 推荐(0)
摘要:Not so Mobile 我的思路:可以将天平看做一棵二叉树,二叉树的每个节点要记录其父节点。然后其实就是一个建树的过程,遇到 0 节点就向下延伸,每当一个节点的左右子树确定(其重量也随之确定),就计算其是否平衡,然后一直向上追溯,直到该节点尚未平衡,继续建树,直至... 阅读全文
posted @ 2018-05-31 00:29 ACLJW 阅读(158) 评论(0) 推荐(0)
摘要:Tree首先根据中序遍历和后序遍历递归地构造二叉树(后续遍历的最后一个节点为二叉树的根节点),然后前序遍历。输入有点坑,你说你直接告诉多少个节点多好。。。我想的是先用fets读取整个串,然后用atoi转化为数字,本地运行没问题可是一提交就报错,暂时还没找到原因,大概是... 阅读全文
posted @ 2018-05-29 23:23 ACLJW 阅读(133) 评论(0) 推荐(0)