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

LeetCode|Day29|1009. 十进制整数的反码|Python刷题笔记

LeetCode|Day29|1009. 十进制整数的反码|Python刷题笔记

🗓️ 本文属于【LeetCode 简单题百日计划】系列
👉 点击查看系列总目录 >>


📌 题目简介

题号:1009. 十进制整数的反码
难度:简单
题目链接:点击跳转


🧾 题目描述

给你一个十进制整数 n,返回其二进制表示的反码所对应的十进制整数。

反码规则是:把二进制表示中每一位 0110

示例:

输入:n = 5(即二进制为 101)
输出:2(反码为 010,等于十进制的 2)

💡 解法:构造掩码异或

class Solution:def bitwiseComplement(self, n: int) -> int:if n == 0:return 1mask = 1while mask <= n:mask = (mask << 1) | 1  # 构造全为1的掩码return n ^ mask  # 异或得到反码

🧠 我的理解

  • 使用掩码构造技巧:构造一个比 n 大,且所有位都是 1 的数;
  • 利用 ^ 异或运算:相同为 0,不同为 1,从而实现反转;
  • 特殊处理边界:0 的反码是 1。

📌 基础语法复习:

  • << 左移位运算符,相当于乘 2;
  • | 按位或运算;
  • ^ 异或运算符,常用于翻转二进制;
  • 位运算是刷题中提高性能的重要工具。

📌 返回总目录:点我回目录

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

相关文章:

  • Jenkins 详解
  • Java 大视界 -- Java 大数据机器学习模型在金融信用评级模型优化与信用风险动态管理中的应用(371)
  • 当贝纯净版_海信ip811n海思mv320处理器安卓4.42及9.0主板优盘免拆刷机固件及教程
  • 符号计算与算法实践|使用Maple教授​​群论​​和​​图论​​课程
  • JSON解析(day20)
  • 【CF】Day114——杂题 (贪心 + 图论 | LCM + 贪心 | 最大最小子序列 + 图论)
  • 如何创建一个 Solana 钱包?
  • imx6ull-驱动开发篇3——字符设备驱动开发实验
  • C 语言第 12 天学习笔记:函数进阶应用与变量特性解析
  • 每日学习笔记记录(分享更新版-凌乱)
  • imx6ull-驱动开发篇2——字符设备驱动开发步骤
  • 网络通信基础(一)
  • Redis 跨主机连接超时分析:从网络波动到架构优化
  • 使用鼠标在Canvas上绘制矩形
  • 【C++算法】80.BFS解决FloodFill算法_岛屿数量
  • 《Java 程序设计》第 9 章 - 内部类、枚举和注解
  • 实在智能Agent智能体荣登全球“Go_Global_AI_100”百强榜,中国AI走向世界!
  • STM32——HAL库
  • 什么是EasyVR shield 3?如何设置EasyVR shield 3
  • 大模型应用开发模拟面试
  • 用动态的观点看加锁
  • TCMalloc 内存分配原理简析
  • 2-verilog-基础语法
  • Coze Studio概览(三)--智能体管理
  • sqli-labs通关笔记-第24关 SQL二次注入(单引号闭合)
  • 硬件学习笔记--73 电能表新旧精度等级对应关系
  • debug redis里面的lua脚本
  • Spring Boot 防重放攻击全面指南:原理、方案与最佳实践
  • ElasticSearch 的3种数据迁移方案
  • 在Word和WPS文字中把全角数字全部改为半角