(子集)主要思路:
用一个与原数组相同长度的flag数组来存放每个元素的标记,以确定是否出现在子集当中。
首先全部输出,然后逐个标记不输出,详见dfs函数中else部分;(着重理解这部分即可)
递归边界时,遍历数组,只要flag标记数组中元素标记为出现,就将对应的元素输出;
#includeusing namespace std; class solution{ public: void fun(int *a,int n) { bool *flag=new bool[n]; for(int i=0;i (全排列)主要思路:
设置一个辅助数组b和一个标记数组flag,长度均和原数组一样;
flag对应两种状态,一种已经放入辅助数组,一表示没有放入;
遍历数组,如果没放入辅助数组,将其放入并改变标记状态,达到递归边界输出辅助数组即可;
#includeusing namespace std; class solution{ public: void fun(int *a,int n) { bool *flag=new bool[n]; int *b=new int[n]; for(int i=0;i



