当前位置: 首页 > news >正文

leetcode刷题五十四

leetcode刷题五十四

文章目录

    • leetcode刷题五十四
      • 题目链接
      • 题目叙述
      • 题目思路
      • 题目解答代码(JavaScript)
      • 个人leetcode介绍

题目链接


https://leetcode.cn/problems/number-complement/

题目叙述

对整数的二进制表示取反(0 变 1 ,1 变 0)后,再转换为十进制表示,可以得到这个整数的补数。

例如,整数 5 的二进制表示是 “101” ,取反后得到 “010” ,再转回十进制表示得到补数 2 。
给你一个整数 num ,输出它的补数。

题目思路

对于这道题目,我们根据补数的定义可以发现,这个所谓的补数其实就是对一个数字的二进制数字各个位置上面的0,1数字按位取反就可以了,我们根据二进制的数值按位取反的性质可以知道,一个数字与这个数字对应的补数相加的和是等于11111…1111(二进制表达式)(n个1,n的数目就是原本的数字对应的二进制的数字的位数)。于是为了求解一个数字的补数,我们可以首先求出这个数字的二进制表达式,然后计算二进制表达式的位数,接下来,利用11111…1111(二进制表达式)(n个1,n的数目就是原本的数字对应的二进制的数字的位数)减去原本的数字就可以得到了这个数字的补数的数值了。

题目解答代码(JavaScript)

/**
 * @param {number} num
 * @return {number}
 */
var findComplement = function(num) {
    let n0 = num
    let arr0 = []
    while(n0 - n0 % 2 != 0){
        arr0.push(n0 % 2)
        n0 = (n0 - n0 % 2) / 2
    }
    arr0.push(n0)
    console.log(arr0)
    return 2 ** arr0.length - 1 - num
};


个人leetcode介绍

最后,介绍一下个人的leetcode,地址为:

https://leetcode.cn/u/huyuxuan-github/

谢谢大家的关注与持续的支持了。

相关文章:

  • #图像处理
  • 【Linux_】常见指令(二)
  • C++类和对象中
  • C++知识总结(内附超详细知识框架图)
  • Windows取证——学习笔记
  • 『Android基础入门』ViewPager与Fragment结合实现多页面滑动
  • 【电子技术基础(精华版)】二极管的基础知识
  • 行为识别系统 (一) --- Yolov7行人检测实例化
  • 前端:收集15个非常实用的JS代码,值得收藏
  • Swin Transformer v2实战:使用Swin Transformer v2实现图像分类(一)
  • Mysql权限
  • 微信小程序开发实战(SM周期及WXS脚本)
  • 实训任务1:Linux基本操作
  • C++11新特性精讲(多线程除外)
  • SpringCloud——Ribbon
  • (三)从jvm层面了解线程的启动和停止
  • @angular/forms 源码解析之双向绑定
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 4. 路由到控制器 - Laravel从零开始教程
  • Angular 4.x 动态创建组件
  • java 多线程基础, 我觉得还是有必要看看的
  • PHP那些事儿
  • React-Native - 收藏集 - 掘金
  • Spring核心 Bean的高级装配
  • vue 配置sass、scss全局变量
  • Webpack 4 学习01(基础配置)
  • webpack4 一点通
  • 阿里云Kubernetes容器服务上体验Knative
  • 第十八天-企业应用架构模式-基本模式
  • 分享几个不错的工具
  • 理清楚Vue的结构
  • 前端攻城师
  • 使用 Docker 部署 Spring Boot项目
  • 通过npm或yarn自动生成vue组件
  • 异常机制详解
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # .NET Framework中使用命名管道进行进程间通信
  • #define,static,const,三种常量的区别
  • $.ajax中的eval及dataType
  • (Python) SOAP Web Service (HTTP POST)
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .net 后台导出excel ,word
  • .NET多线程执行函数
  • .NET分布式缓存Memcached从入门到实战
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .Net组件程序设计之线程、并发管理(一)
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [bzoj1912]异象石(set)
  • [BZOJ3223]文艺平衡树