《程序员面试金典(第6版)》面试题 05.01. 插入
创始人
2025-05-30 15:53:34

题目描述

给定两个整型数字 N 与 M,以及表示比特位置的 i 与 j(i <= j,且从 0 位开始计算)。

编写一种方法,使 M 对应的二进制数字插入 N 对应的二进制数字的第 i ~ j 位区域,不足之处用 0 补齐。具体插入过程如图所示。

题目保证从 i 位到 j 位足以容纳 M, 例如: M = 10011,则 i~j 区域至少可容纳 5 位。

示例1:

  • 输入:N = 1024(10000000000), M = 19(10011), i = 2, j = 6
    输出:N = 1100(10001001100)

示例2:

  • 输入: N = 0, M = 31(11111), i = 0, j = 4
    输出:N = 31(11111)

解题思路与代码

位运算法

首先这道题确实是一道简单题。主要是去检验你了不了解位运算这方面的知识的。如果你不了解位运算方面的知识,可以去看我写的这篇文章扫除盲点:教你理解位运算符。

这道题总的来说没什么特殊的技巧,就是正常去操作位运算符就行了。

具体代码如下:

class Solution {
public:int insertBits(int N, int M, int i, int j) {int count = 0; //用与记录M的二进制位下标bool flag = M & (1 << count); //判断对应M的二进制位的数是否为1int size = j - i + 1;while(i <= j || flag){if(flag){N |= 1<N &= ~(1<

在这里插入图片描述

复杂度分析

时间复杂度:O(j - i + 1) 因为我们要遍历这么j - i + 1 个元素,所以时间复杂度就是这个。
空间复杂度:O(1)

总结

这道题是一道十足的简单题。但需要你对位运算的知识有所了解

相关内容

热门资讯

密度泛函理论-从波函数到电荷密... 1 在许多物理学和工程领域中,取得科学和技术进步关键在于能够从原子或者分子尺寸...
烫发要多久,烫头发要多久 极速... 烫发要多久目录烫发要多久烫头发要多久一般烫发需要花多长时间烫个头发大概需要多长时间烫发要多久 ...
代码br是什么意思 极速百科网... 代码br是什么意思目录代码br是什么意思代码br是什么意思
诺科壁挂炉使用方法是什么,诺科... 诺科壁挂炉使用方法是什么目录诺科壁挂炉使用方法是什么诺科壁挂炉使用方法壁挂炉使用方法是什么?诺科壁挂...
前不见古人的意思,前不见古人什... 前不见古人的意思目录前不见古人的意思前不见古人什么意思?登幽州台歌翻译前不见古人的意思 “前不...
Android---WMS核心... 目录 Activity 与 Window 相关概念 WindowManagerService  Ac...
【JavaWeb】Cookie... Cookie 257.Cookie-什么是Cookie 1、Cookie 翻译过来是饼干的意思。 2...
功率放大器的阻抗匹配原理   设计电路的时候,经常会有很多人对于阻抗有疑问,那么什么是阻抗...
苹果xs和xr的区别,ipho... 苹果xs和xr的区别目录苹果xs和xr的区别iphonexr和xs区别苹果xr怎么更新苹果xs和xr...
建设银行个人网上银行怎么登录,... 建设银行个人网上银行怎么登录目录建设银行个人网上银行怎么登录中国建设银行个人网上银行怎么登陆建设银行...
飞机上可以带几条烟,乘飞机可以... 飞机上可以带几条烟目录飞机上可以带几条烟乘飞机可以带多少条烟坐飞机可以带几条烟坐飞机可以带几条烟?飞...
4厘的利息怎么算,银行说四厘的... 4厘的利息怎么算目录4厘的利息怎么算银行说四厘的利息,怎么算?4厘的利息怎么算4厘的利息怎么算 ...
pkg打包node项目到lin... 首先看一下pkg的一些基本操作 pkg打包node项目为exe_node静态项目 导出exe_疆~的...
实验二 Wireshark 报... 实验 Wireshark 报文捕捉分析实验 小组成员:杨某 王某 郭某 徐某 一、实验目的 掌握 W...
RC4加密——python实现... 1.RC4算法简介 ​ RC4算法由Ron rivest于1987年设计出的一种对称加密算法...
跑跑卡丁车怎么反向集气,跑跑卡... 跑跑卡丁车怎么反向集气目录跑跑卡丁车怎么反向集气跑跑卡丁车反向集气教程现代跑跑卡丁车反向补气怎么玩跑...
不做老好人给你们一个最真实的大... 今天给各位分享不做老好人给你们一个最真实的大众T-ROC测评的知识,其中也会对进行解释,如果能碰巧解...
用声音控制跳跃的游戏,别停下八... 用声音控制跳跃的游戏目录用声音控制跳跃的游戏别停下八分音符酱声控技巧分享一个游戏要用尖叫声玩音符游戏...
我国的最高国家权力机关是哪个,... 我国的最高国家权力机关是哪个目录我国的最高国家权力机关是哪个我国的最高国家权力机关是()。我国最高的...
项目管理(PMP)精选题精讲 请点击↑关注、收藏,本博客免费为你获取精彩知识分享!有惊喜哟࿰...
《伤寒论》——辨太阳病脉证并治... 辨太阳病脉证并治(下)1.问曰:病有结胸①,...
Chat GPT介绍 一、Chat GPT是什么? ChatGPT是一个基于大规模预训练语言模型的对话系统&...
杨永信被判刑了吗,杨永信被判刑... 杨永信被判刑了吗目录杨永信被判刑了吗杨永信被判刑了吗?杨永信这种禽兽不如的东西为什么还没死没被判罪?...
工程管理硕士要考哪些科目 极速... 工程管理硕士要考哪些科目目录工程管理硕士要考哪些科目工程管理硕士要考哪些科目 工程管理硕士考试...
请神容易送神难下一句是什么,请... 请神容易送神难下一句是什么目录请神容易送神难下一句是什么请神容易送神难,难缠贵,十二生肖里指的是那个...
汽车保养一次大概需要多少钱(4... 今天给各位分享汽车保养一次大概需要多少钱的知识,其中也会对4s店保养一次多少钱进行解释,如果能碰巧解...
linux——文本及字符的检索... 文件夹中的目标文件名搜索 find 查询某个文件夹中的某文件:find directo...
手把手教你使用QT语言专家实现... qt版本:5.14.1qtCreator版本:4.11.1硬件ÿ...
线程安全问题,两种锁(sync... 安全问题 多个线程同时操作一个共享数据时,就有可能造成错误,如重复操作&...
神经网络算法 SamNum = 100; % 总样本数 TestSamNum = 101; % 测...