1. 题目

插入。给定两个32位的整数 N 与 M,以及表示比特位置的 i 与 j。

编写一种方法,将 M 插入 N,使得 M 从 N 的第 j 位开始,到第 i 位结束。
假定从 j 位到 i 位足以容纳 M,也即若 M = 10 011,那么 j 和 i 之间至少可容纳5个位。
例如,不可能出现 j = 3 和 i = 2 的情况,因为第3位和第2位之间放不下M。

示例1:输入:N = 10000000000, M = 10011, i = 2, j = 6输出:N = 10001001100示例2:输入: N = 0, M = 11111, i = 0, j = 4输出: N = 11111

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/insert-into-bits-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:int insertBits(int N, int M, int i, int j) {int mask = 0;for(int k = i; k <= j; ++k)mask |= (1<<k);//mask 000001110000N &= (~mask);//清零N中间的位, mask 111110001111M <<= i;return N | M;}
};

程序员面试金典 - 面试题 05.01. 插入(位运算)相关推荐

  1. 程序员面试金典 - 面试题 05.04. 下一个数(线性扫描)

    文章目录 1. 题目 2. 解题 2.1 STL 2.2 线性扫描 2.3 位运算 1. 题目 下一个数.给定一个正整数,找出与其二进制表达式中1的个数相同且大小最接近的那两个数(一个略大,一个略小) ...

  2. 程序员面试金典 - 面试题 05.07. 配对交换(位运算)

    1. 题目 配对交换.编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推). 示例1:输入:num = 2(或者0b10)输出 1 (或者 ...

  3. 程序员面试金典 - 面试题 05.03. 翻转数位(位运算)

    1. 题目 给定一个32位整数 num,你可以将一个数位从0变为1.请编写一个程序,找出你能够获得的最长的一串1的长度. 示例 1: 输入: num = 1775(11011101111) 输出: 8 ...

  4. 程序员面试金典 - 面试题 05.08. 绘制直线(位运算)

    1. 题目 绘制直线.有个单色屏幕存储在一个一维数组中,使得32个连续像素可以存放在一个 int 里. 屏幕宽度为w,且w可被32整除(即一个 int 不会分布在两行上),屏幕高度可由数组长度及屏幕宽 ...

  5. 程序员面试金典 - 面试题 05.02. 二进制数转字符串(浮点型 转 二进制小数,乘2取整)

    1. 题目 二进制数转字符串.给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式. 如果该数字不在0和1之间,或者无法精确地用32位以内的二进制表示,则打印" ...

  6. 程序员面试金典 - 面试题 05.06. 整数转换(位运算)

    1. 题目 整数转换.编写一个函数,确定需要改变几个位才能将整数A转成整数B. 示例1:输入:A = 29 (或者0b11101), B = 15(或者0b01111)输出:2示例2:输入:A = 1 ...

  7. 程序员面试金典 - 面试题 04.01. 节点间通路(图的遍历)

    1. 题目 节点间通路.给定有向图,设计一个算法,找出两个节点之间是否存在一条路径. 示例1:输入:n = 3, graph = [[0, 1], [0, 2], [1, 2], [1, 2]],st ...

  8. 程序员面试金典 - 面试题 03.01. 三合一(数组栈)

    1. 题目 三合一.描述如何只用一个数组来实现三个栈. 你应该实现push(stackNum, value).pop(stackNum).isEmpty(stackNum).peek(stackNum ...

  9. 程序员面试金典 - 面试题 16.01. 交换数字(位运算swap)

    1. 题目 编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值. 示例: 输入: numbers = [1,2] 输出: [2,1]提示: numbers.length ...

最新文章

  1. Linux SSH远程文件/文件夹传输命令scp
  2. ubuntu12.04+fuerte 下跑通lsd-slam——数据集
  3. wringPi 初始化GPIO 为上拉_你彻底弄清GPIO内部结构和各种模式了吗?
  4. Python之IO模型
  5. 正则表达式。部分实例及说明(摘)
  6. 贪婪算法在求解最小生成树中的应用(JAVA)--Kruskal算法
  7. python Unable to find vcvarsall.bat 错误
  8. 2017.7.19 Race 思考记录
  9. logistics模型的训练
  10. ehcache入门基础示例
  11. 活动选择问题的贪心算法c语言,c语言背包问题_背包问题贪心算法_背包问题 贪心算法...
  12. 2011戴尔计算机配置,机型与配置(一)
  13. ipadpro画流程图_Paper 推出适用于快速制作流程图的 Think 套件
  14. 「笔耕不辍」zookeeper的节点加密方式及分布式锁实现过程
  15. pixi 平铺精灵 demo (一)
  16. 电脑网络异常故障解决办法
  17. win10系统怎么创建虚拟网卡?
  18. EDAS投会议论文遇见的问题及部分解决办法——总结
  19. 中国MEMS和石英晶体振荡器市场现状研究分析与发展前景预测报告(2022)
  20. 连接安装在阿里云服务器的Zookeeper

热门文章

  1. C# 两个类之间传递数据
  2. 所有的iPhone设备cell的宽度都是320,解决办法是?
  3. 中国首台千万亿次超级计算机,中国首台千万亿次超级计算机首批设备开始试用...
  4. mysql5.7.17 win7_win7下mysql5.7.17安装配置方法图文教程
  5. ios开发网络篇—HTTP协议 - 转
  6. Oracle Golden Gate概要
  7. 基于PHP实现一个简单的在线聊天功能(轮询ajax )
  8. laravel方法汇总详解
  9. const参数,const返回值与const函数
  10. 大龄屌丝自学笔记--Java零基础到菜鸟--036