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

news/2024/12/23 1:23:22/

题目:

题解

class Solution {// 字典树的根节点Trie root = new Trie();// 最高位的二进制位编号为 30static final int HIGH_BIT = 30;public int findMaximumXOR(int[] nums) {int n = nums.length;int x = 0;for (int i = 1; i < n; ++i) {// 将 nums[i-1] 放入字典树,此时 nums[0 .. i-1] 都在字典树中add(nums[i - 1]);// 将 nums[i] 看作 ai,找出最大的 x 更新答案x = Math.max(x, check(nums[i]));}return x;}public void add(int num) {Trie cur = root;for (int k = HIGH_BIT; k >= 0; --k) {int bit = (num >> k) & 1;if (bit == 0) {if (cur.left == null) {cur.left = new Trie();}cur = cur.left;}else {if (cur.right == null) {cur.right = new Trie();}cur = cur.right;}}}public int check(int num) {Trie cur = root;int x = 0;for (int k = HIGH_BIT; k >= 0; --k) {int bit = (num >> k) & 1;if (bit == 0) {// a_i 的第 k 个二进制位为 0,应当往表示 1 的子节点 right 走if (cur.right != null) {cur = cur.right;x = x * 2 + 1;} else {cur = cur.left;x = x * 2;}} else {// a_i 的第 k 个二进制位为 1,应当往表示 0 的子节点 left 走if (cur.left != null) {cur = cur.left;x = x * 2 + 1;} else {cur = cur.right;x = x * 2;}}}return x;}
}class Trie {// 左子树指向表示 0 的子节点Trie left = null;// 右子树指向表示 1 的子节点Trie right = null;
}

http://www.ppmy.cn/news/1529891.html

相关文章

【C++】—— stack queue deque

【C】—— stack & queue & deque 1 stack 与 queue 的函数接口2 适配器2.1 发现问题2.2 什么是适配器 3 stack 与 queue的模拟实现3.1 栈的基础框架3.2 栈的模拟实现3.3 队列的模拟实现 4 模板的按需实例化5 deque 的简单介绍5.1 vector 与list对比5.1.1 vector5.1.2 …

JWT双令牌认证实现无感Token自动续约

一、JWT概念 JSON Web Token (JWT)是一个开放标准(RFC 7519) &#xff0c;它定义了一种紧凑和自包含的方式&#xff0c;用于作为 JSON 对象在各方之间安全地传输信息。此信息可以进行验证和信任&#xff0c;因为它是经过数字签名的。JWT 可以使用机密(使用 HMAC 算法)或使用 R…

springboot中药材进存销管理系统

基于springbootvue实现的中药材进存销管理系统 &#xff08;源码L文ppt&#xff09;4-079 4 系统总体设计 4.1系统功能结构设计图 根据需求说明设计系统各功能模块。采用模块化设计方法实现一个复杂结构进行简化&#xff0c;分成一个个小的容易解决的板块&#xff0c;然…

了解什么是双软认证

“双软认证”是指软件企业的认定和软件产品的登记。这是我国对软件企业和软件产品的权威资质认证。以下是具体介绍&#xff1a; 1. 软件企业认定&#xff1a; ● 定义&#xff1a;以计算机软件开发生产、系统集成、应用服务和其他相应技术服务为其经营业务和主要经营收入&…

智慧安防监控EasyCVR视频汇聚管理平台如何修改视频流分辨率?

智慧安防监控EasyCVR视频管理平台能在复杂的网络环境中&#xff0c;将前端监控设备进行统一集中接入与汇聚管理。EasyCVR平台支持H.264/H.265视频压缩技术&#xff0c;可在4G/5G/WIFI/宽带等网络环境下&#xff0c;传输720P/1080P/2K/4K高清视频。视频流经平台处理后&#xff0…

Java后端框架---Spring

目录 一.Spring是什么&#xff1f; 二.Spring Hello World 搭建 三.XML配置bean管理 1.bean标签 2.依赖注入 3.依赖注入的补充 四.注解配置bean管理 1.开启注解扫描 2.使用注解对类进行配置 3.自动注入 五.面向切面编程AOP 1.概述 2.通知 六.spring事务管理 1.数据库…

SpringMVC 中的域对象共享数据

文章目录 一、向 request 域对象共享数据二、Model、ModelMap、Map 的关系三、向 session 域共享数据四、向 application 域共享数据五、总结 在当今这个技术飞速发展的时代&#xff0c;SpringMVC 框架在众多的 Java 开发领域中占据着至关重要的地位。在 SpringMVC 框架当中&am…

OpenCV系列教程二:基本图像增强(数值运算)、滤波器(去噪、边缘检测)

文章目录 一、基本图像增强&#xff08;数值运算&#xff09;1.1 加法 &#xff08;cv2.add&#xff09;1.1.1 图像与标量相加&#xff08;调节亮度&#xff09;1.1.2 图像与图像相加&#xff08;两个图像shape要相同&#xff09;1.1.3 图像的加权加法&#xff08;渐变切换&…