3125. Maximum Number That Makes Result of Bitwise AND Zero π
Description
Given an integer n
, return the maximum integer x
such that x <= n
, and the bitwise AND
of all the numbers in the range [x, n]
is 0.
Example 1:
Input: n = 7
Output: 3
Explanation:
The bitwise AND
of [6, 7]
is 6.
The bitwise AND
of [5, 6, 7]
is 4.
The bitwise AND
of [4, 5, 6, 7]
is 4.
The bitwise AND
of [3, 4, 5, 6, 7]
is 0.
Example 2:
Input: n = 9
Output: 7
Explanation:
The bitwise AND
of [7, 8, 9]
is 0.
Example 3:
Input: n = 17
Output: 15
Explanation:
The bitwise AND
of [15, 16, 17]
is 0.
Constraints:
1 <= n <= 1015
Solutions
Solution 1: Bit Manipulation
We can find the highest bit of \(1\) in the binary representation of \(n\). The maximum \(x\) must be less than \(n\) and this bit is \(0\), and all other lower bits are \(1\), i.e., \(x = 2^{\textit{number of the highest bit}} - 1\). This is because \(x \textit{ and } (x + 1) = 0\) must hold.
The time complexity is \(O(\log n)\), and the space complexity is \(O(1)\).
1 2 3 |
|
1 2 3 4 5 |
|
1 2 3 4 5 6 |
|
1 2 3 |
|