class Solution {
public:
int binaryGap(int N) {
int position = ;
vector<int> V;
while (N)
{
if (N & )//N&1==1,表示最后一位是1
{
V.push_back(position);//把二进制为1的下标都记录下来
} position++;
N >>= ;//右移一位
} if (V.size() <= )
{
return ;
}
//1 2 4
int maxdistance = ;
int lastPosition = -;
for (int i = ; i < V.size(); i++)
{
cout << V[i] << " ";
if (i == )
{
lastPosition = V[i];
}
else
{
int distance = V[i] - lastPosition;
if (maxdistance < distance)
{
maxdistance = distance;
}
lastPosition = V[i];
}
}
return maxdistance;
}
};

leetcode868的更多相关文章

  1. [Swift]LeetCode868. 二进制间距 | Binary Gap

    Given a positive integer N, find and return the longest distance between two consecutive 1's in the ...

  2. Leetcode868.Binary Gap二进制间距

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

随机推荐

  1. 《转》 EJB到底是什么,真的那么神秘吗??

    1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业级开发",那么 ...

  2. dubbo-monitor安装、 监控中心 配置过程

    简单介绍下monitor: Simple Monitor挂掉不会影响到Consumer和Provider之间的调用,所以用于生产环境不会有风险. 配置好了之后可以结合admin管理后台使用,可以清晰的 ...

  3. 原创:Angular + controllerAs + CoffeeScript的一个问题,及其解决方案

    config是一个待注入的value,它的值是{count:  1} 看代码(用普通函数的写法): $routeProvider.when '/test', template: "Hello ...

  4. Lua基础---变量与赋值

    看以下案例: test.lua -- 第一个lua脚本 --注释使用"--"符 --变量未定义时,默认初始化的值为nil --这样的定义为全局 num1 = 1 ; --加了关键字 ...

  5. Android 进阶9:进程通信之 AIDL 解析

    读完本文你将了解: AIDL AIDL 生成文件分析 Stub Proxy AIDL 生成的内容小结 AIDL 的使用回顾 服务端 客户端 小结 手动写个 Binder 首先是定义跨进程接口实现 II ...

  6. FlycoTabLayout 从头到脚

    简介 FlycoTabLayout,是一个比Google原生TabLayout 功能更强大的TabLayout库.目前有3种TabLayout: SlidingTabLayout CommonTabL ...

  7. InpOut32 CSharpExample.cs hacking

    /************************************************************************************ * InpOut32 CSh ...

  8. CentOS 6.5添加网易163源

    换国内的yum源. 准备工作,首先备份/etc/yum.repos.d/CentOS-Base.repo              cd /etc/yum.repos.d/ wget http://m ...

  9. C++11新特性之右值引用(&&)、移动语义(move)、完美转换(forward)

    1. 右值引用 个人认为右值引用的目的主要是为了是减少内存拷贝,优化性能. 比如下面的代码: String Fun() { String str = "hello world"; ...

  10. Mapreduce shuffle和排序

    Mapreduce为了确保每个reducer的输入都按键排序.系统执行排序的过程-----将map的输出作为输入传给reducer 称为shuffle.学习shuffle是如何工作的有助于我们理解ma ...