如何巧妙求一个集合的所有子集(幂集) c++算法实现
例题:题目分析:求一个集合的幂集我们如果用编程的思维来思考的话想到的有dfs暴力搜索,就是把集合的每一项两种选择进行枚举。除了暴力我们有没有办法直接求解呢?我们仔细观察一下有n个元素的集合和n-1个元素的集合我们知道数学公式幂集的个数等于2^n次幂,因为每个数都有两个选择。我们发现呢:n和n-1个元素是二倍的关系,那么二倍的关系是偶然嘛?不是的,取决于第n个元素选还是不选。不选就是相当于n-1个元素的幂集,选就是n-1的幂集都放入第n个元素。所有有了二倍的关系。知道了这个,那么我们的实现也十分简单了
原创
2021-03-06 16:33:55 ·
2571 阅读 ·
0 评论