3妹:?jiǎn)鑶瑁瑹┧懒耍?臉上長(zhǎng)了一個(gè)痘
2哥 : 不要在意這些細(xì)節(jié)嘛,不用管它,過兩天自然不就好了。
3妹:切,你不懂,影響這兩天的心情哇。
2哥 : 我看你是不急著找工作了啊, 工作那么辛苦,哪還有時(shí)間想這些啊。
3妹:說到找工作,我又要去刷題了。
2哥:我給你出一道關(guān)于美麗的題吧,讓你的心情美麗美麗~
題目:
給你一個(gè) 正整數(shù) 數(shù)組 nums 。
你需要檢查是否可以從數(shù)組中選出 兩個(gè)或更多 元素,滿足這些元素的按位或運(yùn)算( OR)結(jié)果的二進(jìn)制表示中 至少 存在一個(gè)尾隨零。
例如,數(shù)字 5 的二進(jìn)制表示是 “101”,不存在尾隨零,而數(shù)字 4 的二進(jìn)制表示是 “100”,存在兩個(gè)尾隨零。
如果可以選擇兩個(gè)或更多元素,其按位或運(yùn)算結(jié)果存在尾隨零,返回 true;否則,返回 false 。
示例 1:
輸入:nums = [1,2,3,4,5]
輸出:true
解釋:如果選擇元素 2 和 4,按位或運(yùn)算結(jié)果是 6,二進(jìn)制表示為 “110” ,存在一個(gè)尾隨零。
示例 2:
輸入:nums = [2,4,8,16]
輸出:true
解釋:如果選擇元素 2 和 4,按位或運(yùn)算結(jié)果是 6,二進(jìn)制表示為 “110”,存在一個(gè)尾隨零。
其他按位或運(yùn)算結(jié)果存在尾隨零的可能選擇方案包括:(2, 8), (2, 16), (4, 8), (4, 16), (8, 16), (2, 4, 8), (2, 4, 16), (2, 8, 16), (4, 8, 16), 以及 (2, 4, 8, 16) 。
示例 3:
輸入:nums = [1,3,5,7,9]
輸出:false
解釋:不存在按位或運(yùn)算結(jié)果存在尾隨零的選擇方案。
提示:
2 <= nums.length <= 100
1 <= nums[i] <= 100
思路:
nums 中的奇數(shù)肯定不能參與或運(yùn)算,這會(huì)導(dǎo)致或運(yùn)算結(jié)果的最低位必然是 1。
所以只有偶數(shù)能參與或運(yùn)算,這樣最低位必然是 0。文章來源:http://www.zghlxwxcb.cn/news/detail-807005.html
所以判斷 nums中是否至少有兩個(gè)偶數(shù)即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-807005.html
java代碼:
class Solution {
public boolean hasTrailingZeros(int[] nums) {
int even = nums.length;
for (int x : nums) {
even -= x % 2;
}
return even >= 2;
}
}
到了這里,關(guān)于【教3妹學(xué)編程-算法題】檢查按位或是否存在尾隨零的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!