给定一个正整数 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
/*** @param {number} N* @return {number}*/
var binaryGap = function(N) {};

个人解法

var binaryGap = function(N) {//取余法 4 -> [0,0,1]var arr = [];while(N !== 0){arr.push(N % 2);N = Math.floor(N / 2);}//如果arr有两个1if(arr.indexOf(1 , arr.indexOf(1) + 1) > -1){//max代表最大的距离var max = arr.indexOf(1 , arr.indexOf(1) + 1) - arr.indexOf(1);//去掉arr第一个1arr.splice(arr.indexOf(1) , 1);//如果还有两个1,则判断距离有没有比max大,比max大的话就把这个值赋值给max,然后再把第一个1去掉继续判断while(arr.indexOf(1 , arr.indexOf(1) + 1) > -1){if(arr.indexOf(1 , arr.indexOf(1) + 1) - arr.indexOf(1) > max){max = arr.indexOf(1 , arr.indexOf(1) + 1) - arr.indexOf(1)}arr.splice(arr.indexOf(1) , 1);}return max;}else{//没有两个1就返回0return 0;}
};

LeetCode(868)——二进制间距(JavaScript)相关推荐

  1. leetcode 868. 二进制间距

    [题目]868. 二进制间距 给定一个正整数 N,找到并返回 N 的二进制表示中两个连续的 1 之间的最长距离. 如果没有两个连续的 1,返回 0 . 示例 1: 输入:22 输出:2 解释: 22 ...

  2. LeetCode——868. 二进制间距

    868. 二进制间距 题目描述 答案 我的代码 官方答案 位运算 题目描述 给定一个正整数 n,找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 .如果不存在两个相邻的 1,返回 0 . ...

  3. LeetCode 868. 二进制间距(位运算)

    1. 解题 给定一个正整数 N,找到并返回 N 的二进制表示中两个连续的 1 之间的最长距离. 如果没有两个连续的 1,返回 0 . 输入:22 输出:2 解释: 22 的二进制是 0b10110 . ...

  4. 力扣868. 二进制间距

    题目描述 给定一个正整数 n,找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 .如果不存在两个相邻的 1,返回 0 . 如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两 ...

  5. LeetCode:二进制手表【401】

    LeetCode:二进制手表[401] 题目描述 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右 ...

  6. LeetCode:二进制求和【67】

    LeetCode:二进制求和[67] 题目描述 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11" ...

  7. LeetCode: 868. Binary Gap

    LeetCode: 868. Binary Gap 题目描述 Given a positive integer N, find and return the longest distance betw ...

  8. LeetCode: 868. Transpose Matrix

    LeetCode: 868. Transpose Matrix 题目描述 Given a matrix A, return the transpose of A. The transpose of a ...

  9. leetcode算法练习 JavaScript实现

    leetcode 表格内容由spider.js从leetcode-cn.com爬取. 已做题目答案也从leetcode-cn.com中爬取并生成文件. 解题进度:已解决 140/637 - 简单 94 ...

最新文章

  1. Java零基础学习难吗
  2. 一个基于J2EE的web应用程序运行起来需要什么?
  3. 我的世界java版幻翼_我的世界:熬夜3天能见到“幻翼”?你错了,还要满足这7个条件!...
  4. python【蓝桥杯vip练习题库】ADV-92求最大公约数(递归)
  5. java中对集合排序,Java如何对集合中的项目排序?
  6. Python入门100题 | 第002题
  7. 大数据 智能交通调度_大数据技术在智能交通中的应用
  8. sap.ca.ui.utils.busydialog - scenario1 - opportunity opened
  9. 关系数据库——并发控制
  10. ZooKeeper入门指南
  11. 《python透明人士,他是凭什么成为主流编程的宠儿?!》python基础语法
  12. visio中公式太小_串并联管道中调节阀的工作流量特性分析
  13. df python 增加数据_美国确诊超100万!教你用Python画出全球疫情动态图(附数据下载)...
  14. java抽象类及其派生类_java抽象类
  15. 双点双向路由引入/路由重发布
  16. JavaWeb实现的超市收银、基于SSM+mysql的 vue便利店收银管理系统实现【文档】【代码过程】
  17. 串口转WIFI模块通信
  18. 如何免费将一个PDF拆分成多个文件?
  19. oracle数据库 同义词读写操作,Oracle数据库之同义词(SYNONYM)使用
  20. linux启用dcb步骤,Linux内核DCB子系统

热门文章

  1. C程序100例 第一题
  2. VC++ 进度条更新方案
  3. 阿里云智能语音交互服务导览
  4. JS实现表单多文件上传样式美化支持选中文件后删除相关项
  5. Web应用工作原理、动态网页技术
  6. Android studio SweetAlert for Android
  7. 五,通道之间的数据传输
  8. Effective C++条款4:确认对象钱已经被初始化
  9. Linux操作系统原理与应用08:文件系统
  10. Redis07-对象结构体redisObject