本文主要是介绍Leetcode2980. 检查按位或是否存在尾随零,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Every day a Leetcode
题目来源:2980. 检查按位或是否存在尾随零
解法1:遍历
给你一个 正整数数组 nums 。
你需要检查是否可以从数组中选出两个或更多元素,满足这些元素的按位或运算( OR)结果的二进制表示中至少存在一个尾随零(最低位为 0)。
或运算要求两个元素的最低位都为 0,才能使得结果的最低位为 0,即至少存在一个尾随零。
于是问题转换为正整数数组 nums 至少存在 2 个最低位为 0 的元素,即至少存在 2 个偶数。
代码:
/** @lc app=leetcode.cn id=2980 lang=cpp** [2980] 检查按位或是否存在尾随零*/// @lc code=start
class Solution
{
public:bool hasTrailingZeros(vector<int> &nums){int count = 0;for (int &num : nums)if (num % 2 == 0)count++;return count >= 2;}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(n),其中 n 是数组 nums 的长度。
空间复杂度:O(1)。
这篇关于Leetcode2980. 检查按位或是否存在尾随零的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!