每日算法(十二)-java找出一个数组的所有字串,数组里面元素不重复
- 获取一个数组的所有字串
- 数组里面的元素不重复
- Input:nums=[1,2,3]
- Outpur:[3],[1].[2[,[1,2,3],[1,3],[2,3],[1,2],[]
这里我们尝试用按位法来解决:
(a,b,c)
(1,1,1)->(a,b,c)
(1,1,0)->(a,b)
(1,0,1)->(a,c)
(1,0,0)->(a)
(0,1,1)->(b,c)
(0,1,0)->(b)
(0,0,1)->©
(0,0,0)->@(@表示空集)
private static void getSonSet2(int[] arr, int length) {
int mark=0;
int nEnd=1<<length;
boolean bNullSet=false;
for(mark=0;mark<nEnd;mark++){
bNullSet=true;
for(int i=0;i<length;i++){
if(((1<<i)&mark)!=0){
bNullSet=false;
System.out.print(arr[i]+",");
}
}
if(bNullSet){
System.out.print("[]");
}
System.out.println();
}