博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
力扣——二进制间距
阅读量:5119 次
发布时间:2019-06-13

本文共 1034 字,大约阅读时间需要 3 分钟。

给定一个正整数 N,找到并返回 N 的二进制表示中两个连续的 1 之间的最长距离。

如果没有两个连续的 1,返回 0 。
 
示例 1:
输入:22
输出:2
解释:
22 的二进制是 0b10110 。
在 22 的二进制表示中,有三个 1,组成两对连续的 1 。
第一对连续的 1 中,两个 1 之间的距离为 2 。
第二对连续的 1 中,两个 1 之间的距离为 1 。
答案取两个距离之中最大的,也就是 2 。
示例 2:
输入:5
输出:2
解释:
5 的二进制是 0b101 。
示例 3:
输入:6
输出:1
解释:
6 的二进制是 0b110 。
示例 4:
输入:8
输出:0
解释:
8 的二进制是 0b1000 。
在 8 的二进制表示中没有连续的 1,所以返回 0 。
 
提示:
    1 <= N <= 10^9
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-gap
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

 

class Solution {    public int binaryGap(int n) {        if(n<=2)            return 0;        int right = 0;        int left = 0;        int idx = 0;        int res = 0;        while(n>0){            idx++;            if((n&1)==1){                int temp = left;                left = idx;                  if(right == 0)                    right = left;                else                    right = temp;                res = Math.max(res,left-right);            }            n=n>>1;        }        return res;    }}

 

转载于:https://www.cnblogs.com/JAYPARK/p/11194642.html

你可能感兴趣的文章
全局样式
查看>>
让Apache支持URL重写
查看>>
Silverlight for Windows Phone 7:Dotfuscator - 保护您的应用程序
查看>>
小白学数据分析--留存率分析_I次日留存率突然下降了50%
查看>>
“忘掉大数据”之“法”:大数据修炼要五讲四美
查看>>
tcp/ip 调优示例
查看>>
Java传引用问题
查看>>
2018 第十五届浙江省大学生程序设计竞赛总结
查看>>
Object.prototype.toString()
查看>>
Redhat 平台下 LVM 管理说明
查看>>
RAC集群数据库连库代码示例(jdbc thin方式,非oci)
查看>>
编写shell脚本和执行
查看>>
Little Jumper---(三分)
查看>>
Java微服务框架一览
查看>>
chrome浏览器使用chrome://inspect调试app 网页,打开空白的问题
查看>>
虚函数和纯虚函数的区别
查看>>
Luogu 3172 [CQOI2015]选数
查看>>
Windows 64 位 mysql 5.7.20 安装教程
查看>>
2018.10.23多校
查看>>
中断与事件
查看>>