我有一个算法,其目标是在一个整数数组中给出所有组合的所有可能总和。
private void arraySumPermutation(int value ,int[] arr){
int N = arr.length;
for(int i=0;i<1<<N;i++){
int sum = 0;
for(int j=0;j<N;j++){
if((i & 1<<j)>0){
iCount++;
sum += arr[j];
//S.O.P(sum);
}
}
}
}
我无法理解使用按位 AND 添加的内部 if 条件。内部 if 循环的目标是什么。
if((i & 1<<j)>0)