![]() |
VOOZH | about |
Given a non-negative number n and two values l and r. The problem is to toggle the bits in the range l to r in the binary representation of n, i.e., to toggle bits from the lth least significant bit bit to the rth least significant bit (the rightmost bit as counted as first bit). A toggle operation flips a bit 0 to 1 and a bit 1 to 0.
Constraint: 1 <= l <= r <= number of bits in the binary representation of n.
Examples:
Input: n = 17, l = 1, r = 3
Output: 22
Explanation:(17)10 = (10001)2
(22)10 = (10110)2
The bits in the range 1 to 3 in the binary representation of 17 are toggled.Input: n = 50, l = 2, r = 5
Output: 44Explanation:(50)10 = (110010)2
(44)10 = (101100)2
The bits in the range 2 to 5 in the binary representation of 50 are toggled.
Approach: Following are the steps:
44
Time Complexity: O(1)
Auxiliary Space: O(1)
Approach 2:
Iterate over the given range from L to R and check if the ith bit is set or not. if the ith bit is set then make it unset otherwise make it set bit.
44
Time Complexity: O(R - L + 1)
Auxiliary Space: O(1)