#yyds干貨盤點(diǎn)# LeetCode程序員面試金典:插入

2022-12-27 17:17:15 來源:51CTO博客


(資料圖片僅供參考)

題目:

給定兩個(gè)整型數(shù)字N?與M?,以及表示比特位置的i?與j(i <= j,且從 0 位開始計(jì)算)。

編寫一種方法,使M?對(duì)應(yīng)的二進(jìn)制數(shù)字插入N?對(duì)應(yīng)的二進(jìn)制數(shù)字的第i ~ j?位區(qū)域,不足之處用0補(bǔ)齊。具體插入過程如圖所示。

題目保證從i?位到j(luò)?位足以容納M?, 例如:M = 10011?,則i~j區(qū)域至少可容納 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)

代碼實(shí)現(xiàn):

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; //把最左邊的部分調(diào)整好了,即拋棄了替換部分和低位部分        left = left<                

標(biāo)簽: 二進(jìn)制數(shù)字 不足之處 如圖所示

上一篇:【Vue 中 Axios 的封裝和 API 接口的管理】
下一篇:#yyds干貨盤點(diǎn)# LeetCode程序員面試金典:求和路徑