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