0
点赞
收藏
分享

微信扫一扫

每日一题 --- 2044. 统计按位或能得到最大值的子集数目[力扣][java]

芝婵 2022-03-15 阅读 34

题目:

解题代码:

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;
    }
}

在这里插入图片描述

举报

相关推荐

0 条评论