Skip to content

190. Reverse Bits

Description

Reverse bits of a given 32 bits signed integer.

 

Example 1:

Input: n = 43261596

Output: 964176192

Explanation:

IntegerBinary
4326159600000010100101000001111010011100
96417619200111001011110000010100101000000

Example 2:

Input: n = 2147483644

Output: 1073741822

Explanation:

IntegerBinary
214748364401111111111111111111111111111100
107374182200111111111111111111111111111110

 

Constraints:

  • 0 <= n <= 231 - 2
  • n is even.

 

Follow up: If this function is called many times, how would you optimize it?

 

Solutions

Solution: Bit Manipulation

  • Time complexity: O(32 -> 1)
  • Space complexity: O(1)

 

JavaScript

js
/**
 * @param {number} n
 * @return {number}
 */
const reverseBits = function (n) {
  let result = 0;

  for (let index = 0; index < 32; index++) {
    result <<= 1;
    result |= n % 2;
    n >>= 1;
  }

  return result;
};

Released under the MIT license