868 LeetCode 二进制间距

题目描述:
在这里插入图片描述
思路:首先把十进制整数转换成二进制数;
然后遍历二进制数,找到连续两个一之间的距离

代码如下:

class Solution {
public:
    int binaryGap(int N) {
        vector<int>bin;
        int res=0;
        int a=0,b=0;
        while(N>0){
            bin.push_back(N%2);
            N/=2;
        }
        for(int i=0;i<bin.size();i++){
            if(bin[i]==1){
            a=i;
            break;}
        }
        for(int i=0;i<bin.size();i++){
            if(bin[i]==1&&i!=a){
            b=i;
            res=max(b-a,res);
            a=b;}
        }
        return res;
    }
};
发布了133 篇原创文章 · 获赞 0 · 访问量 1129

猜你喜欢

转载自blog.csdn.net/peachzy/article/details/104473766