zoukankan      html  css  js  c++  java
  • 190. Reverse Bits 二进制相反数

    [抄题]:

    Reverse bits of a given 32 bits unsigned integer.

    Example:

    Input: 43261596
    Output: 964176192
    Explanation: 43261596 represented in binary as 00000010100101000001111010011100, 
                 return 964176192 represented in binary as 00111001011110000010100101000000.

     [暴力解法]:

    时间分析:

    空间分析:

     [优化后]:

    时间分析:

    空间分析:

    [奇葩输出条件]:

    [奇葩corner case]:

    [思维问题]:

    [一句话思路]:

    32位中的每一位都左移 留出空缺、&1取出最后一位、右移丢掉

    [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

    [画图]:

    [一刷]:

    1. &1相同后即可+1,统计1 的个数

    [二刷]:

    [三刷]:

    [四刷]:

    [五刷]:

      [五分钟肉眼debug的结果]:

    [总结]:

    左移 留出空缺、&1取出最后一位、右移丢掉

    [复杂度]:Time complexity: O() Space complexity: O()

    [英文数据结构或算法,为什么不用别的数据结构或算法]:

    [关键模板化代码]:

    [其他解法]:

    [Follow Up]:

    [LC给出的题目变变变]:

     [代码风格] :

    public class Solution {
        // you need treat n as an unsigned value
        public int reverseBits(int n) {
            //ini res
            int res = 0;
            
            //for loop: 32
            for (int i = 0; i < 32; i++) {
                res <<= 1;
                if ((n & 1) == 1) res += 1;
                n >>= 1;
            }
            
            return res;
        }
    }
    View Code
  • 相关阅读:
    移动网络优化
    移动网络架构与数据传输
    移动网络简介与RRC
    CSS之外边距折叠
    网络协议之TLS
    Smarty 模板引擎简介
    FormData介绍
    相对路径与绝对路径
    OAuth2.0
    Redis学习手册(List数据类型)
  • 原文地址:https://www.cnblogs.com/immiao0319/p/8989879.html
Copyright © 2011-2022 走看看