2022-03-15 2044. 统计按位或能得到最大值的子集

2022-03-15  本文已影响0人  16孙一凡通工

java版本:

class Solution {
     int count,max;
    public int countMaxOrSubsets(int[] nums) {
        //  & | ~ ^
        // 最大的肯定是所有的按位或 
        // 做减法
       
       
        for(Integer num:nums){
         max|=num;
        }
        // 每次去掉一个看结果是不是还是原来的
        // 算了还是暴力搜索
      dfs(0,nums,0);
       return count;
    }
   
    public void dfs(int index,int[] nums,int num_max){
          
        if(index==nums.length){
        if(num_max==max){
            count++;
         }
            return;
        }
 
         dfs(index+1,nums,num_max|nums[index]);
        dfs(index+1,nums,num_max);
      
    }
}
上一篇 下一篇

猜你喜欢

热点阅读