当前位置: 代码迷 >> 综合 >> LC 190 Reverse Bits
  详细解决方案

LC 190 Reverse Bits

热度:96   发布时间:2023-10-28 04:48:53.0

思路

将n从最后一位开始,通过n & 1得到最后一位,然后通过ans << 1腾出来最后一位,
(ans << 1) | (n & 1)将n的最后一位放到ans的最后一位上。就此循环32次,每一次ans都会左移一位,最终ans中一开始的最后一位会被移到最前面。

代码

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

复杂度

时间复杂度O(1),空间复杂度O(1)

  相关解决方案