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

题解:
const highBit = 30type trie struct {left, right *trie
}func (t *trie) add(num int) {cur := tfor i := highBit; i >= 0; i-- {bit := num >> i & 1if bit == 0 {if cur.left == nil {cur.left = &trie{}}cur = cur.left} else {if cur.right == nil {cur.right = &trie{}}cur = cur.right}}
}func (t *trie) check(num int) (x int) {cur := tfor i := highBit; i >= 0; i-- {bit := num >> i & 1if bit == 0 {// a_i 的第 k 个二进制位为 0,应当往表示 1 的子节点 right 走if cur.right != nil {cur = cur.rightx = x*2 + 1} else {cur = cur.leftx = x * 2}} else {// a_i 的第 k 个二进制位为 1,应当往表示 0 的子节点 left 走if cur.left != nil {cur = cur.leftx = x*2 + 1} else {cur = cur.rightx = x * 2}}}return
}func findMaximumXOR(nums []int) (x int) {root := &trie{}for i := 1; i < len(nums); i++ {// 将 nums[i-1] 放入字典树,此时 nums[0 .. i-1] 都在字典树中root.add(nums[i-1])// 将 nums[i] 看作 ai,找出最大的 x 更新答案x = max(x, root.check(nums[i]))}return
}func max(a, b int) int {if a > b {return a}return b
}相关文章:
Golang | Leetcode Golang题解之第421题数组中两个数的最大异或值
题目: 题解: const highBit 30type trie struct {left, right *trie }func (t *trie) add(num int) {cur : tfor i : highBit; i > 0; i-- {bit : num >> i & 1if bit 0 {if cur.left nil {cur.left &trie{}}cur cur.left} else …...
每天一道面试题(15):谈谈你对CAS的理解
CAS(Compare And Swap)机制在并发编程中是一个非常重要的概念,主要用于实现原子性操作,避免使用传统的锁机制,从而提高性能。 CAS 的基本原理 CAS 的核心思想是通过比较当前值与预期值来决定是否执行修改。其流程如下…...
如何将MySQL卸载干净(win11)
相信点进来的你肯定是遇到了这个问题,那就是在安装MySQL的时候操作错误,最后结果不是自己想要的。卸载重新安装又发现安装不了。其实最主要的原因就是没有将MySQL卸载干净,那么如何把MySQL卸载干净?下面本篇文章就来给大家一步步介…...
【Linux】简易日志系统
目录 一、概念 二、可变参数 三、日志系统 一、概念 一个正在运行的程序或系统就像一个哑巴,一旦开始运行我们很难知晓其内部的运行状态。 但有时在程序运行过程中,我们想知道其内部不同时刻的运行结果如何,这时一个日志系统可以有效的帮…...
yum 集中式安装 LNMP
目录 安装 nginx 安装 mysql 安装 php 配置lnmp 配置 nginx 支持 PHP 解析 安装 nginx 修改yum源 将原本的yum源备份 vim /etc/yum.repos.d/nginx.repo [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/7/$basearch/ gpgcheck0 enable…...
淘宝扭蛋机小程序,扭蛋机文化下的新体验
在数字化时代中,扭蛋机逐渐从传统的线下机器转移到了线上互联网中,市场得到了创新发展。扭蛋机小程序具有便捷、多样化、个性化的特点,迎合了当下消费者的线上消费习惯,又能够让扭蛋机玩家体验到新鲜有趣的扭蛋。 扭蛋机是一种热…...
Go搭建TcpSocket服务器
1.net包的强大功能 不可否认,go在网络服务开发有强大的优势。net库是一个功能强大的网络编程库,它提供了构建TCP、UDP和HTTP服务器和客户端所需的所有基础工具。 例如,搭建tcp服务器,只需要几行代码。 func main() {listener, …...
hadoop3跑第一个例子wordcount
1、创建目录 hdfs dfs -mkdir -p /user/input2、创建测试文件,并上传文件到hdfs echo 1 > 1.txt hdfs dfs -put 1.txt /user/input3、进入hadoop-3目录,并创建测试文件 cd /app/hadoop-3创建目录 mkdir wcinput cd wcinput 保存wc.input nano wc.i…...
Maven笔记(二):进阶使用
Maven笔记(二)-进阶使用 一、Maven分模块开发 分模块开发对项目的扩展性强,同时方便其他项目引入相同的功能。 将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享(类似Jar包一样之间引用、复用)…...
Apache ZooKeeper 及 Curator 使用总结
1. 下载 官网地址:Apache ZooKeeper 点击下载按钮 选择对应的版本进行下载 2. 使用 1、解压 tar -zxf apache-zookeeper-3.9.2-bin.tar.gz2、复制配置文件,有一个示例配置文件 conf/zoo_sample.cfg,此文件不能生效,需要名称为…...
深入探索:MATLAB中的硬件支持包(HSP)及其应用
在MATLAB环境中,硬件支持包(HSP)扮演着至关重要的角色,尤其是在与硬件交互和嵌入式系统开发方面。HSP提供了一套工具和库,使得MATLAB能够与特定的硬件平台进行有效通信,实现代码的生成和优化。本文将详细介…...
5.内容创作的未来:ChatGPT如何辅助写作(5/10)
引言 在信息爆炸的时代,内容创作已成为连接品牌与受众、传递信息与知识、以及塑造文化与观念的重要手段。随着数字媒体的兴起,内容创作的需求日益增长,对创作者的写作速度和质量提出了更高的要求。人工智能(AI)技术的…...
Day26_0.1基础学习MATLAB学习小技巧总结(26)——数据插值
利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。 参考书目: 1、《MATLAB基础教程 (第三版) (薛山)》 2、《MATL…...
SQL进阶技巧:火车票相邻座位预定一起可能情况查询算法 ?
目录 0 场景描述 1 数据准备 2 问题分析 2.1 分析函数法 2.2 自关联求解 3 小结...
神经网络构建原理(以MINIST为例)
神经网络构建原理(以MINIST为例) 在 MNIST 手写数字识别任务中,构建神经网络并训练模型来进行分类是经典的深度学习应用。MNIST 数据集包含 28x28 像素的手写数字图像(0-9),任务是构建一个神经网络,能够根据输入的图像…...
【ArcGIS微课1000例】0123:数据库中要素类批量转为shapefile
除了ArcGIS之外的其他GIS平台,想要打开ArcGIS数据库,可能无法直接打开,为了便于使用shp,建议直接将数据库中要素类批量转为shapefile。 文章目录 一、连接至数据库二、要素批量转shp一、连接至数据库 打开ArcMap,或者打开ArcCatalog,找到数据库连接,如下图: 数据库为个…...
【Elasticsearch系列十九】评分机制详解
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
神经网络通俗理解学习笔记(3)注意力神经网络
Tansformer 什么是注意力机制注意力的计算键值对注意力和多头注意力自注意力机制注意力池化及代码实现Transformer模型Transformer代码实现BERT 模型GPT 系列模型GPT-1模型思想GPT-2模型思想GPT-3 模型思想 T5模型ViT模型Swin Transformer模型GPT模型代码实现 什么是注意力机制…...
【C#】 EventWaitHandle的用法
EventWaitHandle 是 C# 中用于线程间同步的一个类,它提供了对共享资源的访问控制,以及线程间的同步机制。EventWaitHandle 类位于 System.Threading 命名空间下,主要用于实现互斥访问、信号量控制等场景。 创建 EventWaitHandle 创建一个 E…...
设计模式之结构型模式例题
答案:A 知识点 创建型 结构型 行为型模式 工厂方法模式 抽象工厂模式 原型模式 单例模式 构建器模式 适配器模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 模板方法模式 职责链模式 命令模式 迭代器模式 中介者模式 解释器模式 备忘录模式 观…...
企业AI转型的底层逻辑与路径选择
文章核心内容围绕企业如何实现AI原生转型展开。首先,强调AI转型重点在于如何实现“AI原生”,而非简单叠加AI功能。其次,提出AI产品应超越对话框,实现隐形化与自动化,并成为记录系统。再次,建议企业技术路径…...
品牌AI印相失效90%源于这7个参数误设,可口可乐级商业输出必须校准的4项色彩/构图硬指标
更多请点击: https://intelliparadigm.com 第一章:Midjourney Coca Cola印相失效的底层归因诊断 Midjourney v6 及后续版本中,针对品牌标识(如 Coca-Cola 经典红白波浪字体与动态弧线)的“印相”(prompt i…...
工作5年的PHP程序员,转智能体开发半年,薪资翻了2倍
文章目录前言一、PHP程序员的中年危机:不是你不行,是时代变了二、为什么智能体开发是PHP程序员的最优转型方向?1. 门槛最低,上手最快2. 竞争最小,薪资最高3. 前景最好,发展空间最大三、那个转智能体半年薪资…...
BetterOCR:融合多引擎OCR与LLM的智能文档理解方案
1. 项目概述:当OCR遇上AI,一场关于“理解”的进化 最近在折腾一个文档自动化的项目,发现传统的OCR(光学字符识别)工具虽然能把图片里的文字“读”出来,但效果总差那么点意思。比如,一张随手拍的…...
3分钟学会Xbox Game Pass存档提取:免费工具实现跨平台游戏进度迁移
3分钟学会Xbox Game Pass存档提取:免费工具实现跨平台游戏进度迁移 【免费下载链接】XGP-save-extractor Python script to extract savefiles out of Xbox Game Pass for PC games 项目地址: https://gitcode.com/gh_mirrors/xg/XGP-save-extractor 作为游戏…...
让Linux桌面工作流更高效:Sticky便签应用深度解析
让Linux桌面工作流更高效:Sticky便签应用深度解析 【免费下载链接】sticky A sticky notes app for the linux desktop 项目地址: https://gitcode.com/gh_mirrors/stic/sticky 在Linux桌面环境中,快速记录和访问临时信息是每个用户都会遇到的日常…...
计算机视觉工程师必须掌握的颜色空间选型指南
1. 项目概述:为什么计算机视觉工程师必须懂颜色理论你有没有遇到过这样的情况:模型在训练集上准确率98%,一到测试集就掉到72%?调试半天发现,不是数据标注错了,也不是网络结构有问题,而是训练图像…...
如何设计完美的 TypeScript 错误消息模拟测试数据:深入理解 pretty-ts-errors 测试策略 [特殊字符]
如何设计完美的 TypeScript 错误消息模拟测试数据:深入理解 pretty-ts-errors 测试策略 🔍 【免费下载链接】pretty-ts-errors 🔵 Make TypeScript errors prettier and human-readable in VSCode 🎀 项目地址: https://gitcode…...
终极CFP管理指南:developers.events如何帮助您提交演讲申请
终极CFP管理指南:developers.events如何帮助您提交演讲申请 【免费下载链接】developers-conferences-agenda developers.events is a community-driven platform listing developer/tech conferences and Calls for Papers (CFPs) worldwide with a list, a calend…...
解决Modelsim SE 10.6c仿真Vivado 2019乘法器IP核的“.vhd only”难题(附完整脚本)
解决Modelsim SE 10.6c仿真Vivado 2019乘法器IP核的“.vhd only”难题(附完整脚本) 在FPGA设计流程中,Xilinx Vivado与Mentor Modelsim的组合是许多工程师的首选工具链。但当Vivado 2019生成的乘法器IP核仅提供VHDL接口文件(.vhd)时ÿ…...
