You are given an integer array nums.
Return the bitwise OR of all even numbers in the array.
If there are no even numbers in nums, return 0.
Example 1:
Input: nums = [1,2,3,4,5,6]
Output: 6
Explanation:
The even numbers are 2, 4, and 6. Their bitwise OR equals 6.
Example 2:
Input: nums = [7,9,11]
Output: 0
Explanation:
There are no even numbers, so the result is 0.
Example 3:
Input: nums = [1,8,16]
Output: 24
Explanation:
The even numbers are 8 and 16. Their bitwise OR equals 24.
Constraints:
1 <= nums.length <= 1001 <= nums[i] <= 100Problem Overview: Given an integer array, compute the bitwise OR of only the even numbers. Odd values are ignored. If the array contains multiple even numbers, combine them using the bitwise OR operator to produce the final result.
Approach 1: Filter Even Numbers Then OR (Two-Pass) (Time: O(n), Space: O(n))
Scan the array and collect all even numbers into a temporary list. A number is even if num % 2 == 0 or (num & 1) == 0. After building this list, iterate over it and accumulate the result using the bitwise OR operation: result |= value. This approach separates filtering and aggregation, which can make the logic easier to reason about during early implementation. The tradeoff is extra memory because the filtered list stores up to n elements.
Approach 2: Single-Pass Simulation (Time: O(n), Space: O(1))
Traverse the array once and maintain a running OR value. For each element, check if it is even using a bit test like (num & 1) == 0. When the condition holds, merge the value into the accumulator with result |= num. This works because bitwise OR is associative and order independent, so the result is identical regardless of the processing order. The algorithm performs one pass and keeps only a single integer state, making it optimal for both time and space. This pattern appears frequently in problems involving array traversal and bit manipulation, and the implementation is essentially a straightforward simulation of the required operation.
Recommended for interviews: The single-pass simulation is the expected solution. It shows you understand how to filter elements while aggregating a bitwise result in one traversal. Mentioning the two-pass filtering approach first demonstrates basic reasoning, but the O(n) time and O(1) space simulation is the cleanest and most efficient implementation.
We define a variable ans with an initial value of 0. Then, we iterate through each element x in the array nums; if x is even, we update ans with the bitwise OR of ans and x.
Finally, we return ans.
The time complexity is O(n), where n is the length of the array nums. The space complexity is O(1).
Python
Java
C++
Go
TypeScript
| Approach | Time | Space | When to Use |
|---|---|---|---|
| Filter Even Numbers Then OR (Two-Pass) | O(n) | O(n) | When separating filtering and aggregation improves readability or debugging |
| Single-Pass Simulation | O(n) | O(1) | General case and interview-preferred solution for linear scans |
Bitwise OR of Even Numbers in an Array | Weekly Contest 468 | Java Code | Developer Coder • Developer Coder • 482 views views
Watch 9 more video solutions →Practice Bitwise OR of Even Numbers in an Array with our built-in code editor and test cases.
Practice on FleetCodePractice this problem
Open in Editor