力扣面试题 - 24 插入

题目:

给定两个整型数字 N 与 M,以及表示比特位置的 i 与 ji <= 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)

思路:

  1. 清零目标区域:首先,将 N 的第 ij 位清零。

    1. 构造一个掩码,掩码的第 ij 位为0,其他位为1。

    2. 使用按位与操作(&)将目标区域清零。

  2. 将 M 左移到正确位置:M 左移 i 位,使其对齐到 N 的第 i 位。

  3. 将 N 和 M 合并:将处理后的 N 和处理后的 M 使用按位或操作(|),得到最终结果。

C代码如下:

int insertBits(int N, int M, int i, int j) {// 生成全1的掩码unsigned int allOnes = ~0U; // 左侧掩码,掩码会清空第 i 到 j 位,左侧为1,右侧为0unsigned int leftMask = (j < 31) ? (allOnes << (j + 1)) : 0;// 右侧掩码,清空第 i 位到低位unsigned int rightMask = (1U << i) - 1;// 组合掩码,第 i 到 j 位为 0,其它为 1unsigned int clearMask = leftMask | rightMask; // 清除 N 中的第 i 到 j 位N &= clearMask;// 将 M 左移到正确的位置M <<= i;// 将 M 插入 N 的相应位置return N | M;
}

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

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

相关文章

C07.L07.STL之映射.应用2.统计数字

题目描述 某次科研调查时得到了 n 个自然数&#xff0c;每个数均不超过 1500000000 (1.5*10^9 )。已知不相同的数不超过 10000 个&#xff0c;现在需要统计这些自然数各自出现的次数&#xff0c;并按照自然数从小到大的顺序输出统计结果。 输入格式 包含 2 行&#xff1a; 第…

华为云容器监控平台

首先搜索CCE,点击云容器引擎CCE 有不同的测试&#xff0c;生产&#xff0c;正式环境 工作负载--直接查询服务名看监控 数据库都是走的一个 Redis的查看

Spring Cloud Stream实现数据流处理

1.什么是Spring Cloud Stream&#xff1f; 我看很多回答都是“为了屏蔽消息队列的差异&#xff0c;使我们在使用消息队列的时候能够用统一的一套API&#xff0c;无需关心具体的消息队列实现”。 这样理解是有些不全面的&#xff0c;Spring Cloud Stream的核心是Stream&#xf…

Notepad++--在开头快速添加行号

原文网址&#xff1a;Notepad--在开头快速添加行号_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Notepad怎样在开头快速添加行号。 需求 原文件 想要的效果 方法 1.添加点号 Alt鼠标左键&#xff0c;从首行选中首列下拉&#xff0c;选中需要添加序号的所有行的首列&#xff…

【ROS2】多传感器融合、实现精准定位:robot_localization

1、简述 robot_localization在SLAM建图、导航中常用于将多个传感器融合(IMU、里程计、深度相机、GPS等),以提高定位精度,为机器人提供了在三维空间中的非线性状态估计 robot_localization包含两个状态估计节点: ekf_localization_node:扩展卡尔曼滤波(EKF),缺点是非…

【智谱开放平台-注册_登录安全分析报告】

前言 由于网站注册入口容易被机器执行自动化程序攻击&#xff0c;存在如下风险&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露&#xff0c;不符合国家等级保护的要求。短信盗刷带来的拒绝服务风险 &#xff0c;造成用户无法登陆、注册&#xff0c;大量收到垃圾短信的…

永夜星河主题特效2(星河背景 + 闪烁文字+点击星星 + 文字弹出特效)

目录 图片展示 星河背景 闪烁文字点击星星 文字弹出特效 特效介绍&#xff1a; 使用方式&#xff1a; 图片展示 星河背景 闪烁文字点击星星 文字弹出特效 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8">&l…

在Spring Boot项目中集成RabbitMQ消息中间件

Spring Boot集成RabbitMQ并引入spring-boot-starter-amqp的详细步骤和说明&#xff1a; 引入依赖 在pom.xml文件中添加spring-boot-starter-amqp依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot…

SAP Ariba Contracts_Author the Main Agreement

SAP Ariba Contracts_Author the Main Agreement Workspace Documents 从SAP Ariba 项目模板中继承的文档将自动出现在控件的“文档”选项卡中项目&#xff0c;Workspace Documents 管理所有合同相关文件的地方&#xff0c;如主要协议&#xff0c;附录&#xff0c;合同条款等…

C++练习题(5)

//函数打印素数 #include <iostream> using namespace std; int is_prime(int n){ for(int j2;j<n;j){ if(n%j0) return 0; } return 1; } int main(){ int i0; for(int i100;i<200;i){ if(is_prime(i)1) pr…

【Ubuntu】安装rpm文件

在 Ubuntu 系统上&#xff0c;可以通过安装 alien 工具来转换并安装 .rpm 文件&#xff0c;因为 Ubuntu 默认不支持直接安装 .rpm 包。alien 工具可以将 .rpm 文件转换为 .deb 文件&#xff0c;从而可以使用 Ubuntu 的包管理器 dpkg 或 apt 安装它。 1. 安装 alien 工具 首先…

编程之路,从0开始:动态内存管理

Hello&#xff0c;大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路。 我们今天来学习C语言中的动态内存管理。 目录 1、为什么要有动态内存管理&#xff1f; 2、malloc和free &#xff08;1&#xff09;malloc函数 &…

【题解】AT_joisc2007_mall ショッピングモール (Mall)

原题传送门 温馨提示&#xff1a;岛国题要换行&#xff01; 需要求一个矩阵的和&#xff0c;考虑二维前缀和。 题目中不允许矩阵中有负数&#xff0c;结合求和的最小值&#xff0c;我们把负数赋为最大值不就行了吗。 接下来就是求二维前缀和了。 基于容斥原理&#xff0c;二…

Apifox软件Mock前端数据,帮忙生成API接口文档

Apifox是一款功能强大的接口调试软件&#xff0c;其特色功能丰富&#xff0c;且在前端mock数据生成方面表现出色。以下是对Apifox软件特色功能的详解&#xff0c;以及如何进行前端mock数据生成的步骤&#xff1a; https://apifox.com/help/api-docs/exporting-api https://www…

Node.js笔记(二):Socket.io

问题 1️⃣ 重构赋值 代码一 const socketIO require(socket.Io) const Server socketIO.Server const server new Server()代码二 const {Server} require(socket.Io) const serve new Server()在这里的关键点就是{}的作用&#xff0c;这里有一个概念就是“重构赋值”…

2021 年 12 月青少年软编等考 C 语言三级真题解析

目录 T1. 我家的门牌号思路分析T2. 子串计算思路分析T3. 吃糖果思路分析T4. 拨钟问题思路分析T5. 分形盒思路分析T1. 我家的门牌号 我家住在一条短胡同里,这条胡同的门牌号从 1 1 1 开始顺序编号。 若所有的门牌号之和减去我家门牌号的两倍,恰好等于 n n n,求我家的门牌…

模拟器多开限制ip,如何设置单窗口单ip,每个窗口ip不同

很多手游多开玩家都是利用安卓模拟器实现手游多开&#xff0c;但是很多手游会限制ip&#xff0c;导致多开之后封号等问题&#xff0c;模拟器本身没有更换IP的功能&#xff0c;就需要通过第三方软件来实现 安卓模拟器概述 雷电模拟器、夜神模拟器、mum模拟器等都是目前市场上比…

微信万能门店小程序系统存在任意文件读取漏洞

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…

入门pandas

pandas是本书后续内容的首选库。它含有使数据清洗和分析工作变得更快更简单的数据结构和操作工具。pandas经常和其它工具一同使用&#xff0c;如数值计算工具NumPy和SciPy&#xff0c;分析库statsmodels和scikit-learn&#xff0c;和数据可视化库matplotlib。pandas是基于NumPy…

Apple Vision Pro开发001-开发配置

一、Vision Pro开发硬件和软件要求 硬件要求软件要求 1、Apple Silicon Mac(M系列芯片的Mac电脑) 2、Apple vision pro-真机调试 XCode15.2及以上&#xff0c;调试开发和打包发布Unity开发者账号&&苹果开发者账号 二 、开启无线调试 1、Apple Vision Pro和Mac连接同…