面试题 05.01. 插入

​​题目来源:

        leetcode题目,网址:面试题 05.01. 插入 - 力扣(LeetCode)

解题思路:

       截取 N 第 j 位到 31 位,M 低 j-i+1 位,N 低 i 位,拼接即可。

解题代码:

class Solution {
public:
    int insertBits(int N, int M, int i, int j) {
        int res=j==31?0:N>>(j+1);       //j-32 的部分
        res=res<<(j-i+1);
        res=res |(getLow(M,j-i+1));//i-32 的部分
        res=res<<(i);
        res=res |(getLow(N,i));//0-32 的部分
        return res;
    }
    int getLow(int num,int bits){   //获得num 低 bits 位
        int temp=0;
        for(int i=0;i
 
  

总结:

        数字位数是从 0 开始,而右移需要至少 1 位。有点烦,注意边界条件。

        无官方题解。


你可能感兴趣的:(#,C++,LeetCode,C++)