程序员面试金典 - 面试题 05.01. 插入(位运算)
生活随笔
收集整理的這篇文章主要介紹了
程序员面试金典 - 面试题 05.01. 插入(位运算)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 題目
插入。給定兩個(gè)32位的整數(shù) N 與 M,以及表示比特位置的 i 與 j。
編寫一種方法,將 M 插入 N,使得 M 從 N 的第 j 位開(kāi)始,到第 i 位結(jié)束。
假定從 j 位到 i 位足以容納 M,也即若 M = 10 011,那么 j 和 i 之間至少可容納5個(gè)位。
例如,不可能出現(xiàn) j = 3 和 i = 2 的情況,因?yàn)榈?位和第2位之間放不下M。
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/insert-into-bits-lcci
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
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;} };總結(jié)
以上是生活随笔為你收集整理的程序员面试金典 - 面试题 05.01. 插入(位运算)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 剑指Offer - 面试题50. 第一个
- 下一篇: 程序员面试金典 - 面试题 16.15.