摘要: 之前排列组合相关的问题通常直接采用递归来解决,从来没有深究过背后的思想; 递归和回溯问题主要是采用树的思想; 组合问题: 组合问题常常是给出n个元素,从中间选定k个元素,进行组合,有时还需要无重复组合; 所以根据遍历树的思想,可以认为是一个k层树,进行遍历即可; 例如上图所示: 递归嵌套为两层,直接 阅读全文
posted @ 2021-01-31 17:14 暮云林凌 阅读(71) 评论(0) 推荐(0)
摘要: 回溯树的问题,和之前的递归思想相同,但是从来没有做过相关总结; 总体来说,通过一个一个递归来进行枚举,每次传入flag标志数组进行记录,进行重复元素剔除,太久没刷有点没感觉; void find(vector<bool>& flag, vector<int>& mem, int x, int cou 阅读全文
posted @ 2021-01-31 17:05 暮云林凌 阅读(64) 评论(0) 推荐(0)
摘要: 困难题,没有想到并查集的思想,并且很久不做有点生疏; 以前并查集都是针对于单个目标的次序排列问题,头一次遇到这种归类问题; 基础思想是判断两个字符串是否属于一类,但是这一个问题也蕴含了次序的问题; 例如,a,b,c; 有可能a,b相似,b,c相似,而a,c不相似; 也有可能a,c相似,b,c相似,a 阅读全文
posted @ 2021-01-31 16:21 暮云林凌 阅读(54) 评论(0) 推荐(0)