題目描述:反轉一個 32 位元無號整數的所有位元,回傳結果。
解題思路:迴圈 32 次,每次從 n 取出最低位(n & 1),將其放入結果的對應高位(result |= bit << (31 - i)),然後右移 n。或者等效地:每次將 result 左移一位,OR 入 n 的最低位,再右移 n。逐位處理所有 32 個位元。
時間複雜度:O(1) — 固定 32 次迴圈,與輸入值無關。
空間複雜度:O(1) — 只用兩個整數變數。
1. Set result = 0 2. Repeat 32 times: a. result = (result << 1) | (n & 1) b. n >>= 1 3. Return result
逐位反轉 O(32):逐一提取、移位、組合 — 此為本方法。
分治:反轉上半位元和下半位元,再交換 — 同複雜度但更複雜。