首页 > 编程语言 >#yyds干货盘点# LeetCode程序员面试金典:插入

#yyds干货盘点# LeetCode程序员面试金典:插入

时间:2022-12-27 15:35:47浏览次数:40  
标签:yyds right 插入 int 金典 示例 middle LeetCode left

题目:

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

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

#yyds干货盘点# LeetCode程序员面试金典:插入_代码实现

题目保证从 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) {
//left in (,j+1];middle in [i,j];right in [i-1,0];
int left = N>>j>>1; //把最左边的部分调整好了,即抛弃了替换部分和低位部分
left = left<<j<<1; //因此最后要进行或运算,所以把他再移到原来的高位上。
int middle = M<<i; //替换N的j<-----i位,那么只需要将M左移i位即可
int right = N&((1<<i)-1);//只需要N的低位,将高位置零,(1<<2)-1 = (11)2
return left | middle | right;
}

}

标签:yyds,right,插入,int,金典,示例,middle,LeetCode,left
From: https://blog.51cto.com/u_13321676/5972854

相关文章

  • #yyds干货盘点# 名企真题专题:小东分苹果
    1.简述:描述果园里有一堆苹果,一共n头(n大于1小于8)熊来分,第一头为小东,它把苹果均分n份后,多出了一个,它扔掉了这一个,拿走了自己的一份苹果,接着第二头熊重复这一过程,即先均分n份......
  • #yyds干货盘点# 名企真题专题:小易的升级之路
    1.简述:描述小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3.......
  • leetcode笔记——325周赛
    2515.到目标字符串的最短距离-力扣(LeetCode)这道题一次遍历就可以做,直接用abs(i-startindex)和n-abs(i-startindex)即可表示距离,但我做的时候绕麻烦了......
  • #yyds干货盘点#linux ls统计文件个数
    Linux下有三个命令:lsgrepwc通过这三个命令的组合可以统计目录下文件及文件夹的个数。统计当前目录下文件的个数(不包括目录)ls-l|grep"^-"|wc-l统计当前目录下文件的个数......
  • leetcode-541. 反转字符串 II
    541.反转字符串II-力扣(Leetcode)比较简单,想清楚边界条件,然后做一下字符的反转即可。go可以将不能变动的字符串转换成可以变动的[]byte之后,修改完之后,再转成string......
  • #yyds干货盘点# LeetCode程序员面试金典:二叉搜索树序列
    题目:从左向右遍历一个数组,通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树。给定一个由不同节点组成的二叉搜索树 root,输出所有可能生成此树的数组。 示例1:......
  • #yyds干货盘点# LeetCode程序员面试金典:检查子树
    题目:检查子树。你有两棵非常大的二叉树:T1,有几万个节点;T2,有几万个节点。设计一个算法,判断T2是否为T1的子树。如果T1有这么一个节点n,其子树与T2一模一样,则T2为T1......
  • #yyds干货盘点# 名企真题专题:编码
    1.简述:描述假定一种编码的编码范围是a~y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下:a,aa,aaa,aaaa,aaab,aaac,……,b,ba,baa,b......
  • leetcode-17. 电话号码的字母组合
    17.电话号码的字母组合给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对应......
  • Leetcode207
    numCourses->总的课程数目Prerequisited->pairinalistdenotinghavetofinishbtostudya class Solution:    def canFinish(self, numCourses: int......