Post

[LeetCode 190] Reverse Bits

LeetCode 190 (Java)
[Reverse Bits] 문제 풀이

[LeetCode 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 <= 2^31 - 2
  • n is even.







Code


내 제출


1
2
3
4
5
6
7
8
9
10
11
class Solution {
    public int reverseBits(int n) {
        int ans = 0;
        for (int i = 0; i < 32 && n != 0; ++i) {
            ans |= (n & 1) << (31 - i);
            n >>>= 1;
        }
        return ans;
    }
}


RuntimeMemory
0 ms40.9 MB


다른 풀이


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
    public int reverseBits(int n) {

        int ans=0;

        for(int i=0;i<32;i++){

            //first ateking last bit by and opearting then shidting the ans bit and doing or
            ans=(n&1) | ans<<1;
            //going to thennext bit
            n=n>>1;
        }
        return ans;
        
    }
}


Reference


  • https://github.com/doocs/leetcode/blob/main/solution/0100-0199/0190.Reverse%20Bits/Solution.java
This post is licensed under CC BY 4.0 by the author.