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

力扣刷题(第九十六天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

数字的补数

解题思路

  1. 计算原数字的二进制表示的位数 l
  2. 构造一个 l 位的全 1 数 (1 << l) - 1
  3. 用全 1 数减去原数字得到补数。
    class Solution:def findComplement(self, num: int) -> int:# 计算数字的二进制位数l = num.bit_length()# 构造全1掩码并计算补数return (1 << l) - 1 - num

逐行解释

class Solution:def findComplement(self, num: int) -> int:# 计算num的二进制表示的位数(不包含前导零)# 例如:num=5(二进制101)的位数为3l = num.bit_length()# 构造一个与num二进制位数相同的全1数字,再减去num得到补数# 步骤解析:# 1. 1 << l:将1左移l位,得到100...0(共l个0)#    例如l=3时,1 << 3 = 8(二进制1000)# 2. (1 << l) - 1:得到l位全1的数字#    例如l=3时,8-1=7(二进制111)# 3. 减去num后,相当于对num的二进制位取反(不包含前导零)#    例如5(101)与7(111)相减得2(010),即101取反为010return (1 << l) - 1 - num

http://www.lryc.cn/news/597848.html

相关文章:

  • arm64架构开发板上调用奥比中光深度摄像头用于视觉测距
  • 利用DeepSeek编写一个使用lzav算法的文件压缩工具
  • 【JavaSE】正则表达式学习笔记
  • Android Multidex 完全解析:解决64K方法数限制
  • MYSQL笔记4
  • 设备虚拟化
  • 不一样的Mysql安装方式
  • 主要科技公司与新创公司 AI Agent 进展调研
  • 【MySQL】MySQL 索引详解
  • 论文笔记:Tuning Language Models by Proxy
  • HDFS写性能优化技巧详解:从理论到实践
  • 1688 商品数据采集的应用行业与接入方式
  • Linux运维新手的修炼手扎之第24天
  • 本地运行C++版StableDiffusion!开源应用StableVerce发布
  • Java并发编程:锁机制
  • C++(面向对象封装、继承、多态)
  • 深度图像滤波
  • UI测试平台TestComplete:高效覆盖风险,加速持续交付
  • 基于python的微博评论和博文文本分析,包括LDA+聚类+词频分析+lstm热度预测,数据量10000条
  • Ubuntu22.04.5 LTS安装与使用Docker
  • Android Camera openCamera
  • 水泥厂码垛环节的协议转换实践:从Modbus TCP到DeviceNet
  • 浙大Fast Lab:融合3D激光雷达与强化学习的「端到端导航」,让无人机“飞”在点云上!
  • 快手DHPS:国内首个实现基于RDMA 通信的可负载均衡高性能服务架构!
  • 基于Springboot的中药商城管理系统/基于javaweb的中药材销售系统
  • Https以及CA证书
  • 代码随想录算法训练营第二十九天
  • 反向传播及优化器
  • 软硬件协同仿真和验证的标准接口协议SCE-MI简介
  • Spring-IoCDI