二进制间距

2023-10-29

二进制间距:

给定一个正整数 n,找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 。如果不存在两个相邻的 1,返回 0 。

如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两个 1 彼此 相邻 。两个 1 之间的距离是它们的二进制表示中位置的绝对差。例如,“1001” 中的两个 1 的距离为 3 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-gap

输入:n = 22
输出:2
解释:22 的二进制是 “10110” 。
在 22 的二进制表示中,有三个 1,组成两对相邻的 1 。
第一对相邻的 1 中,两个 1 之间的距离为 2 。
第二对相邻的 1 中,两个 1 之间的距离为 1 。
答案取两个距离之中最大的,也就是 2 。

public class BinaryGap {

    public static int binaryGap(int n) {
        int max = 0,num = 0;
        boolean flag = false;
        while (n!=0){
            if (1 == n%2){
                flag = true;
            }
            if (flag){
                if (1 == n%2){
                    max = Math.max(max,num);
                    num = 0;
                }
                n = n>>1;
                num ++;
            } else {
                n = n>>1;
            }
        }
        return max;
    }

    public static void main(String[] args) {
        System.out.printf(binaryGap(22)+"");
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二进制间距 的相关文章

随机推荐

  • mysql 多选数据类型_MySQL基础操作与数据类型

    目录 1 文件夹 库 增 改 查 删 2 文件 表 增 改 查 删 3 文件的一行内容增 改 查 删 4 创建表的完整语法 5 整型类型 6 补充sql mode 7 浮点型 8 字符类型 9 日期类型 10 枚举与集合类型 11 not
  • AIR103

    基础资料 基于Air103开发板 Air103 LuatOS 文档 上手 开发上手 LuatOS 文档 探讨重点 对官方社区库接口GPIO库使用及示例进行复现及分析 了解该的基本原理及操作方法 软件及工具版本 LuatOS AIR103 b
  • 定时任务@Scheduled用法及其参数讲解

    1 基本用法 Scheduled 由Spring定义 用于将方法设置为调度任务 如 方法每隔十秒钟被执行 方法在固定时间点被执行等 Scheduled fixedDelay 1000 上一个任务结束到下一个任务开始的时间间隔为固定的1秒 任
  • android获取版本号报错,Android 7.1 Industry版本有概率启动报错(无法获取EGLConfig)...

    本帖最后由 prece 于 2020 7 22 11 48 编辑 在RK3399开发板 Station P1上 运行Android 7 1 Industry版本有概率启动报如下错误 07 22 11 36 31 746 595 595 F
  • [OpenAirInterface实战-8] :OAI编译遇到的问题与解决方法汇总

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 OpenAirInterface实战 8 OAI编译遇到的问题与解决方法汇总 文火冰糖 王文兵 的博客 CSDN博客 问题类型1 ASN 1
  • Sum It Up HDU - 1258【DFS】

    Given a specified total t and a list of n integers find all distinct sums using numbers from the list that add up to t F
  • 十年资深建模师教你如何用zbrush在圆柱或曲面上雕刻花纹

    在圆柱上面或者是曲面比较大的模型上面制作花纹 如果我们直接使用笔刷雕或是用alpha拉出来 可能效果不是很好 对于这种情况 我们需要结合UV制作这样的图案 如果想更多了解游戏建模可以加入我们的游戏建模交流团1046 777 540 只有数字
  • 六、深入理解JDK1.8中HashMap哈希冲突解决方案

    导读 前面文章一 深入理解 Java集合初篇 中我们对Java的集合体系进行一个简单的分析介绍 上两篇文章二 Jdk1 7和1 8中HashMap数据结构及源码分析 三 JDK1 7和1 8HashMap数据结构及源码分析 续 中我们分别对
  • Java基础之【使用迭代器删除List中的元素】

    直接看代码以及代码中注释 iterator的remove跟list的remove区别是 迭代器会在remove后进行expectedModCount modCount操作 这样就会避免 ConcurrentModificationExcep
  • python+selenium尝试处理滑块验证

    效果如图 处理思路 1 打开滑动验证页面 这个用selenium一步一步走过去 2 将滑动验证码的整个图片保存下来 3 对图片的像素点进行分析 发现拼图处像素特征如下 1 阴影起点处rgb的第一个值为0 2 阴影处的rgb三个值相加大部分小
  • 【机器学习基础 2】matplotlib库

    目录 一 什么是matplotlib库 二 基本用法 1 绘制简单的线图 plot 函数 2 绘制散点图 scatter 函数 3 绘制条形图 bar 函数 4 绘制饼图 pie 函数 三 重要用法 1 设置样式 2 添加标签 3 设置坐标
  • C++动态库使用

    个人博客地址 https cxx001 gitee io 前言 Windows与Linux下面的动态链接库区别 1 文件后缀不同 Linux动态库的后缀是 so 文件 而window则是 dll 文件 2 文件格式不同 a Linux下是E
  • GT911电容触摸屏使用

    注 转载于https blog csdn net qlexcel article details 99696108 一 介绍与硬件连接 GT911 GT928 GT9147都属于GT9系列非单层多点触控芯片 他们支持的触控点数不同 GT92
  • 什么事IPC(Inter-Process Communication,进程间通信)

    进程间通信IPC 也就是Inter Process Communication的缩写 首先我们明白一个进程其实就是一个狭义上的程序 一个服务器也就是一个进程 比如客户端和服务器的连接就是两个进程在通信 只是这两个进程并不在同一台计算机上 它
  • wsl set default version: 请启用虚拟机平台 windows 功能并确保在 bios 中启用虚拟化

    前段时间电脑偶然间恢复了出厂设置 之前安装的docker之类的东西都得重来了 既然要安装docker 肯定得用到WSL 于是就想要先把WSL的版本切换到2 在运行了如下命令后出现了这么个问题 PS C Users me gt wsl set
  • ​广州地区高校福利来啦!6月29日华为云开发者沙龙门票限时免费领取!

    6月29日华为云开发者沙龙广州站开启报名 华为专家现场指导实操演示并有精品图书相送 了解行业趋势进行技术储备 高校教师 学生免费参会 报名地址 https click hm baidu com clk 7a57cac1ed530949ab0
  • 【Redis 6】缓存穿透、缓存雪崩、缓存击穿(附解决方案、代码)

    各位小伙伴们大家好 欢迎来到这个小扎扎的Redis 6专栏 在这个系列专栏中我对B站黑马的Redis教程进行一个总结 鉴于 看到就是学到 学到就是赚到 精神 这波依然是血赚 O Redis知识点速览 缓存穿透 原理以及解决方案 缓存空对象代
  • Redis入门

    1 前言 1 1 什么是Redis Redis是一个基于内存的key value结构数据库 Redis 是互联网技术领域使用最为广泛的存储中间件 它是 Remote Dictionary Service 的首字母缩写 也就是 远程字典服务
  • 断言(Assert)的用法

    一 概念 编写代码时 我们总是会做出一些假设 断言就是用于在代码中捕捉这些假设 可以将断言看作是异常处理的一种高级形式 使用断言可以创建更稳定 品质更好且不易于出错的代码 当需要在一个值为FALSE时中断当前操作的话 可以使用断言 单元测试
  • 二进制间距

    二进制间距 给定一个正整数 n 找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 如果不存在两个相邻的 1 返回 0 如果只有 0 将两个 1 分隔开 可能不存在 0 则认为这两个 1 彼此 相邻 两个 1 之间的距离是它们的