100166. 检查按位或是否存在尾随零 --力扣 --JAVA

题目

给你一个 正整数 数组 nums 。

你需要检查是否可以从数组中选出 两个或更多 元素,满足这些元素的按位或运算( OR)结果的二进制表示中 至少 存在一个尾随零。

例如,数字 5 的二进制表示是 "101",不存在尾随零,而数字 4 的二进制表示是 "100",存在两个尾随零。

如果可以选择两个或更多元素,其按位或运算结果存在尾随零,返回 true;否则,返回 false 。

解题思路

  1. 双层循环,获取每两个元素组合后的结果;
  2. 奇数的二进制表示一定不存在尾随零,而偶数一定存在尾随零;
  3. 判断获得结果是否为偶数,是则直接返回true。

代码展示

class Solution {
    public boolean hasTrailingZeros(int[] nums) {
        int len = nums.length;
        for(int i = 0; i < len; i++){
            for(int j = i +1; j < len; j++){
                int temp = nums[i] | nums[j];
                if(temp % 2 == 0){
                    return true;
                }
            }
        }
        return false;
    }
}

你可能感兴趣的:(力扣练习,leetcode,java,python)