2020年6月10日 星期三

[LeetCode] 190. Reverse Bits* 解題思路 (Easy)



這題需要反轉三十二位元的二進制數字。




LeetCode 題目連結

 

https://leetcode.com/problems/reverse-bits/

題目


Reverse bits of a given 32 bits unsigned integer.



Example 1: Input: 00000010100101000001111010011100 Output: 00111001011110000010100101000000 Explanation: The input binary string 00000010100101000001111010011100 represents the unsigned integer 43261596, so return 964176192 which its binary representation is 00111001011110000010100101000000.


Example 2: Input: 11111111111111111111111111111101 Output: 10111111111111111111111111111111 Explanation: The input binary string 11111111111111111111111111111101 represents the unsigned integer 4294967293, so return 3221225471 which its binary representation is 10111111111111111111111111111111.

 

Accept 作法


這題時間複雜度 O(n)。


Runtime: 2 ms
Memory: 40.1 MB

Java 程式碼

public class Solution {
    // you need treat n as an unsigned value
    public int reverseBits(int n) {
        int res = 0;
        for(int i = 0; i< 32; i++){
            res = (res << 1) + (n & 1);
            n >>= 1;
        }
        return res;
    }
}

更多 LeetCode 相關資源

 

複習程式面試書籍


除了 LeetCode 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備
需要的話可以看看,寫得很仔細。


 
 

書名:提升程式設計師的面試力:189道面試題目與解答

 



相關 LeetCode文章一律會放在 程式解題 標籤分類,歡迎持續追蹤。


沒有留言:

張貼留言