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

Python | Leetcode Python题解之第421题数组中两个数的最大异或值

题目:

题解:

class Trie:def __init__(self):# 左子树指向表示 0 的子节点self.left = None# 右子树指向表示 1 的子节点self.right = Noneclass Solution:def findMaximumXOR(self, nums: List[int]) -> int:# 字典树的根节点root = Trie()# 最高位的二进制位编号为 30HIGH_BIT = 30def add(num: int):cur = rootfor k in range(HIGH_BIT, -1, -1):bit = (num >> k) & 1if bit == 0:if not cur.left:cur.left = Trie()cur = cur.leftelse:if not cur.right:cur.right = Trie()cur = cur.rightdef check(num: int) -> int:cur = rootx = 0for k in range(HIGH_BIT, -1, -1):bit = (num >> k) & 1if bit == 0:# a_i 的第 k 个二进制位为 0,应当往表示 1 的子节点 right 走if cur.right:cur = cur.rightx = x * 2 + 1else:cur = cur.leftx = x * 2else:# a_i 的第 k 个二进制位为 1,应当往表示 0 的子节点 left 走if cur.left:cur = cur.leftx = x * 2 + 1else:cur = cur.rightx = x * 2return xn = len(nums)x = 0for i in range(1, n):# 将 nums[i-1] 放入字典树,此时 nums[0 .. i-1] 都在字典树中add(nums[i - 1])# 将 nums[i] 看作 ai,找出最大的 x 更新答案x = max(x, check(nums[i]))return x

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 详细分析分布式事务场景、理论基础以及解决方法
  • 吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.1-2.2
  • python函数三:拆包和交换变量值、引用、匿名函数
  • 使用 uni-app 开发微信小程序的详细指南
  • Thymeleaf模板引擎
  • 【深度学习】发展过程和实际应用场景——图像分类 ?自然语音处理?语音识别?自动驾驶?医疗影像诊断?附代码
  • Java项目基于docker 部署配置
  • shell指令及笔试题
  • alembic常用命令
  • QTCreator 调试:unknown debugger type “No engine“
  • 51单片机-红外遥控器(NEC标准)
  • MFC-基础架构
  • Redis——常用数据类型List
  • <<编码>> 第 16 章 存储器组织(1)--比特锁存器 示例电路
  • spark之不同序列化对比
  • 自己简单写的 事件订阅机制
  • [ JavaScript ] 数据结构与算法 —— 链表
  • [笔记] php常见简单功能及函数
  • bootstrap创建登录注册页面
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • ES6 学习笔记(一)let,const和解构赋值
  • Fabric架构演变之路
  • HashMap ConcurrentHashMap
  • Idea+maven+scala构建包并在spark on yarn 运行
  • IOS评论框不贴底(ios12新bug)
  • JS字符串转数字方法总结
  • mysql_config not found
  • Odoo domain写法及运用
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Sass 快速入门教程
  • session共享问题解决方案
  • Vue2.x学习三:事件处理生命周期钩子
  • 爱情 北京女病人
  • 反思总结然后整装待发
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 码农张的Bug人生 - 初来乍到
  • 前端js -- this指向总结。
  • 日剧·日综资源集合(建议收藏)
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​flutter 代码混淆
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • ​油烟净化器电源安全,保障健康餐饮生活
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (三)c52学习之旅-点亮LED灯
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net 使用ajax控件后如何调用前端脚本