【Lintcode】1218. Number Complement

题目地址:

https://www.lintcode.com/problem/number-complement/description

给定一个正整数 x x x,输出其补数。补数定义是将 x x x的二进制表示位按位翻转所得之数(该二进制表示不应该含前导 0 0 0,除非它自己是 0 0 0)。

可以先求一下 x x x的二进制表示的长度(去掉所有前导 0 0 0,除非它自己是 0 0 0),设长度是 l l l,则答案就是 ( 1 < < l ) − 1 − x (1<<l)-1-x (1<<l)1x。代码如下:

public class Solution {
    /**
     * @param num: an integer
     * @return: the complement number
     */
    public int findComplement(int num) {
        // Write your code here
        int len = 0, tmp = num;
        while (tmp != 0) {
            len++;
            tmp >>= 1;
        }
        
        return (1 << len) - 1 - num;
    }
}

时间复杂度 O ( log ⁡ x ) O(\log x) O(logx),空间 O ( 1 ) O(1) O(1)

热门文章

暂无图片
编程学习 ·

vscode自定义vue模板

创建一个用户代码片段 在创建的模板中输入 {"Print to console": {"prefix": "vue","body": ["<template>"," <div>"," "," </div>","</template>&…
暂无图片
编程学习 ·

SpringCloud之服务配置中心

转载请标明出处&#xff1a;https://blog.csdn.net/men_ma/article/details/106847165. 本文出自 不怕报错 就怕不报错的小猿猿 的博客 Docker入门之Docker安装镜像和容器的相关命令操作目标1.SpringCloud Config简介2.Config Server基本使用目标 1、SpringCloud Config简介 2…
暂无图片
编程学习 ·

2020年前端面试题

1、HTML5的新特性&#xff08;转自&#xff1a;https://www.cnblogs.com/vicky1018/p/7705223.html&#xff09; 为了更好地处理今天的互联网应用&#xff0c;HTML5添加了很多新元素及功能&#xff0c;比如: 图形的绘制&#xff0c;多媒体内容&#xff0c;更好的页面结构&…
暂无图片
编程学习 ·

HOME%分号导致环境变量无效-以javac为例(第N个小插曲)

今天使用javac命令突然报错&#xff1a; E:\test>javac ‘javac’ 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 这个错误常比较见&#xff0c;一般是jdk安装和环境变量是否设置的问题&#xff0c;多篇文章和问答已经提供了解决方法。 但是我的问题不是…
暂无图片
编程学习 ·

@Value DI注入 的几种使用方法

//1.直接赋值Value("normal")private String normal;//使用时值为"normal"//2.注入操作系统Value("#{systemProperties[os.name]}")private String osName;//3.注入表达式结果Value("#{ T(java.long.Math).random()*100.0 }")private …
暂无图片
编程学习 ·

【git】加入github项目教程

【下载git】 git是管理github的工具&#xff0c;上面也有提到&#xff0c;在git官网上下载最新版git即可&#xff0c;安装也很简单。 【新建本地库】 在自己的电脑上&#xff0c;选定或者新建一个文件夹作为该项目的本地版本库位置&#xff0c;比如说我想将项目test放在桌面。…
暂无图片
编程学习 ·

2021年煤矿井下电气考试题库及煤矿井下电气模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2021年煤矿井下电气考试题库及煤矿井下电气模拟试题&#xff0c;包含煤矿井下电气考试题库答案和解析及煤矿井下电气模拟试题练习。由安全生产模拟考试一点通公众号结合国家煤矿井下电气考试最新大纲及煤矿井下电气考…
暂无图片
编程学习 ·

2020-12-17

基于51单片机交通灯&#xff08;汇编语言&#xff09; 设计要求&#xff1a; 设计交通灯控制系统。模拟交通信号灯控制&#xff1a;一般情况下正常显示&#xff0c;东西-南北交替放行&#xff0c;各方向通行时间为30秒。有救护车或警车到达时&#xff0c;两个方向交通信号灯全…
暂无图片
编程学习 ·

Python面向对象 (4)

Python面向对象 私有权限 面向对象三大特性&#xff1a;封装、继承、多态 封装的意义 1,将属性和方法放到一起做为一个整体&#xff0c;然后通过实例化对象来处理&#xff1b;2,隐藏内部实现细节&#xff0c;只需要和对象及其属性和方法交互就可以了&#xff1b;3,对类的属…
暂无图片
编程学习 ·

oracle自动启动脚本

oracle自动启动脚本 /etc/oratab介绍 系统版本&#xff1a;CentOS release 6.8 (Final) 数据库版本&#xff1a;Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 核心文件&#xff1a;/etc/oratab 注&#xff1a;如果相应目录下没有该文件…
暂无图片
编程学习 ·

大数据容器化-基于Kubernetes(k8s)构建spark运行环境

Apache Spark 在大数据处理与分析领域&#xff0c;Apache Spark无疑占据着重要地位。它的特点是基于内存计算&#xff0c;支持各类资源管理平台&#xff0c;其中以YARN最为常见&#xff0c;同时又与Hadoop平台集成&#xff0c;在集群节点以HDFS作为分布式文件存储系统。 我们…
暂无图片
编程学习 ·

Android 使用 Lottie 库简单快速地实现漂亮的动画

Android 使用 Lottie 库简单快速地实现漂亮的动画 安卓实现动画的方式有很多种&#xff0c;Lottie 库提供了更加简便的方法&#xff0c;资源也更加轻量&#xff0c;很多动画资源就 KB&#xff0c;因为多是 Json 文件。 Lottie 是 Airbnb 开发的一款能够为原生应用添加动画效果…
暂无图片
编程学习 ·

HashMap集合遍历的五种方式

文章目录创建HashMap集合&#xff0c;添加数据一、第一种foreach遍历二、第二种foreach遍历三、第一种迭代器遍历 效率高&#xff08;建议使用&#xff09;四、第二种迭代器遍历 效率低&#xff08;不建议使用&#xff09;五、JDK8新特性&#xff0c;通过lambda遍历Map创建Hash…
暂无图片
编程学习 ·

java Proxy示例

JDK的动态代理 Proxy public static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h)throws IllegalArgumentException{***************}首先jdk的动态代理&#xff0c;需要传入三个参数(ClassLoader loader, Class<?>[…
暂无图片
编程学习 ·

SolarWinds 供应链攻击通告

报告编号&#xff1a;B6-2020-121403 报告来源&#xff1a;360CERT 报告作者&#xff1a;360CERT 更新日期&#xff1a;2020-12-14 0x01 漏洞简述 2020年12月14日&#xff0c;360CERT监测发现 FireEye 发布了 SolarWinds 供应链攻击通告 的分析报告&#xff0c;事件等级&a…