201. Bitwise AND of Numbers Range

来源:互联网 发布:云计算课程大纲 编辑:程序博客网 时间:2024/06/05 19:17
//time exceededclass Solution {public:    int rangeBitwiseAnd(int m, int n) {        if(m==n) return m;        int a=m;        while(m<n)        {            a&=m++;            if(a==0) return 0;        }        return a;    }};
//64msclass Solution {public:    int rangeBitwiseAnd(int m, int n) {        if(m==n) return m;        return 2*rangeBitwiseAnd(m/2,n/2);    }};
class Solution {public:    int rangeBitwiseAnd(int m, int n) {        if(m==n) return m;        if(m&n==0) return 0;        return 2*rangeBitwiseAnd(m/2,n/2);    }};
class Solution {public:    int rangeBitwiseAnd(int m, int n) {        if(m==n) return m;        int a=1;        while(m<n)        {            if(m&n==0) return 0;            a*=2;            m/=2;            n/=2;        }        a*=m;        return a;    }};
0 0
原创粉丝点击