当前位置: 首页 > 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.dtcms.com/a/294786.html

相关文章:

  • Windows 用 Python3 快速搭建 HTTP 服务器
  • Google Chrome V8< 14.0.221 类型混淆漏洞
  • 基于Kafka实现动态监听topic功能
  • 元图CAD:高效分割图纸的智能解决方案
  • CSP-J系列【2024】P11230 [CSP-J 2024] 接龙题解
  • 数据持久化--PlayerPrefs
  • GRE实验
  • ROS是什么?
  • 力扣面试150(39/150)
  • PyTorch中的词嵌入层(nn.Embedding)详解与实践指南
  • js生成器
  • 【黑产大数据】2025年上半年互联网黑灰产趋势年度总结
  • MySQL 8.0 OCP 1Z0-908 题目解析(33)
  • 【硬件】Fan in和Fan out
  • 《地牢探险者:深渊回响》(C++游戏,爆肝7.8个小时,全文14591字)(求一个免费的三连)
  • c# sqlsuger 获取关联表中一个值
  • SET: Spectral Enhancement for Tiny Object Detection(CVPR2025)
  • iOS WebView 远程调试实战 解决表单输入被键盘遮挡和焦点丢失问题
  • VRRP技术-设备备份技术
  • 5️⃣ set(集合)速查表
  • UI测试平台TestComplete:高效覆盖风险,加速持续交付
  • 情况:后端涉及到异步操作,数据还没更新完就直接向前端返回success的结果。
  • 如何做好性能测试?
  • 自定义类型:结构体,联合和枚举
  • 慢 SQL接口性能优化实战
  • 线路板快板厂家有哪些?
  • HCIA复习+网络类型及数据链路层协议复习
  • 【已解决】ubuntu执行sudo apt update镜像源更新失败:404 Not Found 没有 Release 文件。
  • 2025暑期—04环境设置-D2L+Jupyter
  • Java应用程序内存占用分析