您的当前位置:首页正文

LeetCode 201. Bitwise AND of Numbers Range

2024-11-22 来源:个人技术集锦

链接:

思路

若m = n,结果显然就是m;若m < n,则从m加到n的过程中,最低位一定经历过1和0,AND后最低位为0,rangeBitwiseAnd(m,n) = rangeBitwiseAnd(m>>1, n>>1) << 1。

代码

class Solution {
public:
    int rangeBitwiseAnd(int m, int n) {
        int shf = 0;
        while(m < n) {
            shf++;
            m >>= 1;
            n >>= 1;
        }
        return m << shf;
    }
};
显示全文