news 2026/5/14 10:55:38

LeetCode 数组中两个元素的最大异或题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 数组中两个元素的最大异或题解

LeetCode 数组中两个元素的最大异或题解

题目描述

给定一个整数数组 nums,返回 nums[i] XOR nums[j] 的最大结果。

示例

输入:nums = [3,10,5,25,2,8]
输出:28

解题思路

方法:字典树

思路

  • 使用字典树存储所有数字的二进制表示。
  • 遍历数组,对于每个数字,在字典树中查找与其异或结果最大的数字。
  • 从最高位开始,尽量选择与当前位不同的路径。

复杂度分析

  • 时间复杂度:O(n * L),L 是二进制位数。
  • 空间复杂度:O(n * L)。

代码实现

class TrieNode: def __init__(self): self.children = {} class Trie: def __init__(self): self.root = TrieNode() def insert(self, num): node = self.root for i in range(31, -1, -1): bit = (num >> i) & 1 if bit not in node.children: node.children[bit] = TrieNode() node = node.children[bit] def find_max_xor(self, num): node = self.root xor_val = 0 for i in range(31, -1, -1): bit = (num >> i) & 1 opposite = 1 - bit if opposite in node.children: xor_val = xor_val * 2 + 1 node = node.children[opposite] else: xor_val = xor_val * 2 node = node.children[bit] return xor_val def find_maximum_xor(nums): trie = Trie() for num in nums: trie.insert(num) max_xor = 0 for num in nums: max_xor = max(max_xor, trie.find_max_xor(num)) return max_xor # 测试 def test_find_maximum_xor(): nums = [3, 10, 5, 25, 2, 8] print(find_maximum_xor(nums)) # 输出:28 if __name__ == "__main__": test_find_maximum_xor()

总结

字典树可以用于求最大异或值,从最高位开始,尽量选择与当前位不同的路径。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 10:52:35

口碑靠谱的多模型聚合平台生产厂家,值得您深入了解考察

随着大模型技术在各行业的落地渗透,企业对多场景AI能力的需求日益多元,多模型聚合平台成为连接业务系统与各类AI模型的核心枢纽。但市场产品质量参差不齐,选择口碑靠谱的生产厂家,是企业降低AI落地成本、提升运营效率的关键决策。…

作者头像 李华
网站建设 2026/5/14 10:52:33

macai:本地化运行大语言模型的命令行工具,无缝集成终端工作流

1. 项目概述与核心价值最近在开源社区里,一个名为Renset/macai的项目引起了我的注意。乍一看这个标题,它像是一个普通的GitHub仓库,由用户“Renset”创建,名为“macai”。但作为一名长期在AI和开发工具领域摸爬滚打的从业者&#…

作者头像 李华
网站建设 2026/5/14 10:51:22

如何永久保存微信聊天记录:开源工具WeChatExporter完整指南

如何永久保存微信聊天记录:开源工具WeChatExporter完整指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾担心手机丢失或更换时,那些珍…

作者头像 李华
网站建设 2026/5/14 10:50:11

Python金融数据获取终极指南:3分钟掌握同花顺问财数据采集

Python金融数据获取终极指南:3分钟掌握同花顺问财数据采集 【免费下载链接】pywencai 获取同花顺问财数据 项目地址: https://gitcode.com/gh_mirrors/py/pywencai 想要快速获取同花顺问财的金融数据吗?pywencai是你需要了解的终极Python工具&…

作者头像 李华
网站建设 2026/5/14 10:49:05

ARM指令集LDRT与逻辑移位操作深度解析

1. ARM指令集基础与LDRT指令解析 在嵌入式系统开发领域,ARM指令集作为RISC架构的代表,其精简高效的特性使其成为移动设备和物联网终端的首选。今天我们将深入探讨两个关键指令:LDRT(带特权检查的加载指令)和逻辑移位操…

作者头像 李华