力扣190. 颠倒二进制位

2023-12-18 05:57:49

位运算

  • 思路:
    • 逐位颠倒,第 i 位二进制移动到 (31 - i) 位上
      • result |= (n & 1) << (31 - i);

class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t result = 0;
        for (int i = 0; i < 32 && n > 0; ++i) {
            result |= (n & 1) << (31 - i);
            n >>= 1;
        }

        return result;
    }
};
  • 据了解,还有空间复杂度为 O(1) 的算法,后续研究;

文章来源:https://blog.csdn.net/N_BenBird/article/details/135051289
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。