LeetCode 面试经典150题 190.颠倒二进制位

news2024/9/23 10:10:33

复习知识:正数的原码、反码、补码相同,负数的反码在其原码的基础上, 符号位不变,其余各个位取反,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1 (即在反码的基础上+1)。

题目:颠倒给定的 32 位无符号整数的二进制位。

提示:

  • 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。
  • 在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825

示例 2:

输入:n = 11111111111111111111111111111101
输出:3221225471 (10111111111111111111111111111111)
解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,
     因此返回 3221225471 其二进制表示形式为 10111111111111111111111111111111 。

不用管符号,比如示例2,我们输入的整数是正的而且大于Java中int的正数表示范围。所以采用找一个有符号数,它的二进制形式跟我们输入的无符号二进制形式一模一样,我们就把这个有符号数当作无符号数来处理,对其32位都进行颠倒。颠倒后输出结果,把我们的无符号数当作有符号输出即可,我们自己根据补码转换。总而言之,把int n当作无符号数来处理,就把它想象成一个字符串。

思路

执行的 & >> << | 都是位操作,我们不用关心数据是大端存储还是小端存储,怎么进行位运算、符号什么的,因为我们执行的是位运算操作,编译器会为我处理,我们不用管。想像成直接对一个二进制数执行位操作,其余的不用管。

代码

public class Solution {
    // you need treat n as an unsigned value
    public int reverseBits(int n) {
        int res = 0;  // 反转结果,初始为0表示所有位都为0
        // 循环处理32位,idx为位索引
        for (int idx = 0; idx < 32; idx++) {
            int digit = n & 1;  // 获取当前最低位
            n >>= 1;  // 将最低位右移掉
            res |= (digit << (31 - idx));  // 将最低位反转到实际位置上
        }
        return res;
    }
}

性能

时间复杂度o(1)

空间复杂度o(1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2157267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全国及分(31个)省全社会就业人数(1978-2022年)

分省就业人数分析 经济发达省份&#xff1a;如广东、江苏、浙江等省份的就业人数较高&#xff0c;这与它们的经济发展水平和产业结构密切相关。欠发达省份&#xff1a;虽然就业人数相对较低&#xff0c;但也呈现出增长态势&#xff0c;显示了国家在区域协调发展上的成效。 从…

软考高级:数据库事务状态区分:活动、部分提交、提交、失败、中止 AI 解读

讲解 数据库事务状态的区分可以用来表示事务在不同阶段的状态。事务&#xff08;Transaction&#xff09;是数据库中的一组操作&#xff0c;要么全部成功&#xff0c;要么全部失败。这些状态可以帮助我们理解事务从开始到结束的整个生命周期。 生活化例子 假设你去餐厅点餐&…

AI资深导师指导-ChatGPT深度科研工作应用、论文撰写、数据分析及机器学习与AI绘图

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年4月&#xff0c;更强版本的ChatGPT4.0上线&#xff0c;文本、语音、图像等多模态交互方式使其在…

操作系统week3

操作系统学习 三.内存管理 16.内存映射文件 传统的文件访问方式&#xff1a; open系统调用–打开文件seek系统调用–将读写指针移到某个位置read系统调用–从读写指针所指位置读入若干数据write系统调用–将内存中的指定数据&#xff0c;写回磁盘 内存映射文件的访问方式&…

2.pytest框架实现一些前后置(固件,夹具)的处理,断言和allure-pytest插件生成allure测试报告

一、setup/teardowm,setup_class/teardown_class&#xff08;所有&#xff09; 为什么需要这些功能&#xff1f; 比如&#xff1a;web自动化执行用例之前&#xff0c;请问需要打开浏览器吗&#xff1f;用例执行后需要关闭浏览器吗&#xff1f; 前置后置 二、使用pytest.fixture…

KamaCoder 103. 水流问题

题目要求 N*M的矩阵&#xff0c;数值代表位置的相对高度。矩阵模拟了一个地形&#xff0c;当雨水落上时&#xff0c;会根据地形倾斜向低处流动。但是只能从较高或等高的地点流向较低或等高并且相邻的地点&#xff0c;我们的目标是确定那些单元格&#xff0c;从这些单元格出发的…

[数据结构与算法·C++] 笔记 2.1 线性表

线性结构 概念 二元组 B ( K , R ) B(K,R) B(K,R) K a 0 , a 1 , . . . , a n − 1 K{a_0,a_1,...,a_{n-1}} Ka0​,a1​,...,an−1​ ( R r R{r} Rr) 有一个唯一的开始结点&#xff0c;它没有前驱&#xff0c;有一个唯一的直接后继一个唯一的终止结点&#xff0c;它有一个…

Diffusion Models/Score-based Generative Models背后的深度学习原理(7):估计配分函数

Diffusion Models专栏文章汇总&#xff1a;入门与实战 前言&#xff1a;有不少订阅我专栏的读者问diffusion models很深奥读不懂&#xff0c;需要先看一些什么知识打下基础&#xff1f;虽然diffusion models是一个非常前沿的工作&#xff0c;但肯定不是凭空产生的&#xff0c;背…

【水文】LLM 成文测试|探索嵌入式硬件编程的奥秘:入门基础知识的全面解析

这次用的是智谱清言的&#xff0c;文字质量比百度的高一些。 但是在按要求改写的方面还是需要给出太过明确的指令&#xff0c;麻烦。 探索嵌入式硬件编程的奥秘&#xff1a;入门基础知识的全面解析 嵌入式硬件作为现代科技的核心&#xff0c;广泛应用于各种设备和系统中。对于…

【OSS安全最佳实践】对OSS内身份证图片中身份证号进行脱敏

为确保存储在私有OSS Bucket特定文件夹中包含中国内地身份证信息的PNG、JPG、JPEG、BMP或WEBP格式图片&#xff0c;在与其他用户共享时身份证信息不被泄露&#xff0c;可使用数据安全中心 DSC&#xff08;Data Security Center&#xff09;的图片脱敏功能。DSC目前仅支持对身份…

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-22

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-22 引言: 全球最热销的国产游戏-《黑神话: 悟空》不仅给世界各地玩家们带来愉悦&#xff0c;而且对计算机人工智能研究也带来新的思考。在本期的论文速读中&#xff0c;我们带来一篇关于视觉语言模型&#xff0…

【C++高阶】深入理解C++ I/O流:标准库中的隐藏宝石

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C 特殊类 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ C IO流 &#x1f4d2;1. C语言的输入…

Linux中的动静态库

目录 前言 1.库的文件名 2.库的制作 对于动态库&#xff1a; 对于静态库&#xff1a; 3.库文件的查找 4.库的加载与使用 对于动态库&#xff1a; 对于静态库&#xff1a; 可执行程序分段&#xff1a; 程序的编址于动态库&#xff1a; 总结 前言 在刚开始学习C语言…

NASA:ASTER L1A 重建未处理仪器数据 V003

ASTER L1A 重建未处理仪器数据 V003 简介 先进星载热发射和反射辐射计&#xff08;ASTER&#xff09;1A 级&#xff08;AST_L1A&#xff09;包含重建的仪器数字编号&#xff08;DN&#xff09;&#xff0c;这些数字编号来自所获取的望远镜遥测数据流&#xff1a; 可见光和近红…

综合题第一题(地址表的填写)

题目 第一题的形式大概就是这样的&#xff0c;通常IP地址和子网掩码会给我们。 地址类别 补充知识 IP地址&#xff08;Internet Protocol Address&#xff09;是分配给网络中设备的数字标签&#xff0c;用于标识设备在网络中的位置。IP地址分为IPv4和IPv6两种版本&#xff0…

用Qt 对接‌百度AI平台

很多同学想利用几大模型AI弄点东西&#xff0c;但又不知道如何去介入&#xff1f;&#xff1f;最近帮同学弄点东西&#xff0c;刚好要接入到AI平台&#xff0c;就顺便研究了一下&#xff0c;并记录下来。 首先我们选择的 AI模型是百度的&#xff0c;然后注册&#xff0c;申请密…

vue实现数据栏无缝滚动实现方式-demo

效果 方式一 通过实现两个item 进行循环 <!--* Author: Jackie* Date: 2023-08-16 21:27:42* LastEditTime: 2023-08-16 21:41:51* LastEditors: Jackie* Description: scroll 水平滚动 - 效果基本满足需求* FilePath: /vue3-swiper-demo/src/components/scroll/Scroll12.…

开始场景的制作+气泡特效的添加

3D场景或2D场景的切换 1.新建项目时选择3D项目或2D项目 2.如下图操作&#xff1a; 开始前的固有流程 按照如下步骤进行操作&#xff0c;于步骤3中更改Company Name等属性&#xff1a; 本案例分辨率可以如下设置&#xff0c;有能力者可根据需要自行调整&#xff1a; 场景制作…

python是什么语言写的

Python是一种计算机程序设计语言。是一种面向对象的动态类型语言。现今Python语言很火&#xff0c;可有人提问&#xff0c;这么火的语言它的底层又是什么语言编写的呢&#xff1f; python是C语言编写的&#xff0c;它有很多包也是用C语言写的。 所以说&#xff0c;C语言还是很…

算法.图论-并查集

文章目录 1. 并查集介绍2. 并查集的实现2.1 实现逻辑2.2 isSameSet方法2.3 union方法(小挂大优化)2.4 find方法(路径压缩优化) 3. 并查集模板4. 并查集习题4.1 情侣牵手4.2 相似字符串组 1. 并查集介绍 定义&#xff1a; 并查集是一种树型的数据结构&#xff0c;用于处理一些不…