题目
给你一个 正整数 数组
nums
。你需要检查是否可以从数组中选出 两个或更多 元素,满足这些元素的按位或运算(
OR
)结果的二进制表示中 至少 存在一个尾随零。例如,数字
5
的二进制表示是"101"
,不存在尾随零,而数字4
的二进制表示是"100"
,存在两个尾随零。如果可以选择两个或更多元素,其按位或运算结果存在尾随零,返回
true
;否则,返回false
。
解题思路
- 双层循环,获取每两个元素组合后的结果;
- 奇数的二进制表示一定不存在尾随零,而偶数一定存在尾随零;
- 判断获得结果是否为偶数,是则直接返回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; } }