题目:
解题代码:
class Solution {
    public int countMaxOrSubsets(int[] nums) {
        int maxOr = 0, cnt = 0;
        for (int i = 0; i < 1 << nums.length; i++) {
            int orVal = 0;
            for (int j = 0; j < nums.length; j++) {
                // 将整个子数组进行位异或
                if (((i >> j) & 1) == 1) {
                    orVal |= nums[j];
                }
            }
            // 判断maxOr是否为最大
            if (orVal > maxOr) {
                maxOr = orVal;
                cnt = 1;
            } else if (orVal == maxOr) {
                cnt++;
            }
        }
        return cnt;
    }
}
 











