421 Maximum XOR of Two Numbers in an Array 数组中两个数的最大异或值
给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231 。
找到 ai 和aj 最大的异或 (XOR) 运算结果,其中0 ≤ i,  j < n 。
你能在O(n)的时间解决这个问题吗?
示例:
输入: [3, 10, 5, 25, 2, 8]
输出: 28
解释: 最大的结果是 5 ^ 25 = 28.
详见:https://leetcode.com/problems/maximum-xor-of-two-numbers-in-an-array/description/
C++:
class Solution {
public:
    int findMaximumXOR(vector<int>& nums)
    {
        int res = 0, mask = 0;
        for (int i = 31; i >= 0; --i)
        {
            mask |= (1 << i);
            unordered_set<int> s;
            for (int num : nums)
            {
                s.insert(num & mask);
            }
            int t = res | (1 << i);
            for (int prefix : s)
            {
                 // 利用了 ^ 的 a ^ b = c,则 b ^ c = a
                if (s.count(t ^ prefix))
                {
                    res = t;
                    break;
                }
            }
        }
        return res;
    }
};
参考:https://www.cnblogs.com/grandyang/p/5991530.html
421 Maximum XOR of Two Numbers in an Array 数组中两个数的最大异或值的更多相关文章
- [LeetCode] 421. Maximum XOR of Two Numbers in an Array 数组中异或值最大的两个数字
		Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. Find the maximum re ... 
- LeetCode 421. 数组中两个数的最大异或值(Maximum XOR of Two Numbers in an Array) 71
		421. 数组中两个数的最大异或值 421. Maximum XOR of Two Numbers in an Array 题目描述 给定一个非空数组,数组中元素为 a0, a1, a2, - , a ... 
- Java实现 LeetCode 421 数组中两个数的最大异或值
		421. 数组中两个数的最大异或值 给定一个非空数组,数组中元素为 a0, a1, a2, - , an-1,其中 0 ≤ ai < 231 . 找到 ai 和aj 最大的异或 (XOR) 运算 ... 
- [LeetCode] Maximum XOR of Two Numbers in an Array 数组中异或值最大的两个数字
		Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. Find the maximum re ... 
- [Swift]LeetCode421. 数组中两个数的最大异或值 | Maximum XOR of Two Numbers in an Array
		Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. Find the maximum re ... 
- Leetcode 421.数组中两数的最大异或值
		数组中两数的最大异或值 给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231 . 找到 ai 和aj 最大的异或 (XOR) 运算结果,其中0 ... 
- [LeetCode] 421. Maximum XOR of Two Numbers in an Array(位操作)
		传送门 Description Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. Fin ... 
- 【LeetCode】421. Maximum XOR of Two Numbers in an Array 解题报告(Python & C++)
		作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 依次遍历每一位 前缀树 日期 题目地址:https://lee ... 
- 421. Maximum XOR of Two Numbers in an Array——本质:利用trie数据结构查找
		Given a non-empty array of numbers, a0, a1, a2, - , an-1, where 0 ≤ ai < 231. Find the maximum re ... 
随机推荐
- UVA   4857  Halloween Costumes  区间背包
			题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ... 
- libevent HTTP client 的实现
			my_conn_ = evhttp_connection_base_new(ev_base_,ev_dns_,host,port); struct evhttp_request *http_req; ... 
- C#使用SharpZipLib压缩解压文件
			#region 加压解压方法 /// <summary> /// 功能:压缩文件(暂时只压缩文件夹下一级目录中的文件,文件夹及其子级被忽略) /// </summary> // ... 
- Highcharts报表——让你的网页上图表画的飞起
			Highcharts是一款纯javascript编写的图表库,能够很简单便捷的在Web网站或Web应用中添加交互性的图表,Highcharts目前支持直线图.曲线图.面积图.柱状图.饼图.散点图等多达 ... 
- Spring Task 定时任务
			所谓定时任务.就是依据我们设定的时间定时运行任务,就像定时发邮件一样,设定时间到了.邮件就会自己主动发送. 在Spring大行其道的今天,Spring也提供了其定时任务功能,Spring Task.同 ... 
- java方法返回值的变量类型困惑
			一.java program progress of excuting:show in next picture How about the java virtual machine i ... 
- Xcode升级插件失效解决办法-升级版
			Xcode升级插件失效解决办法 每每升级Xcode,第三方插件总是中枪.解决办法也基本是依据http://joeshang.github.io/2015/04/10/fix-xcode-upgrade ... 
- [读书笔记]流畅的Python(Fluent Python)
			<流畅的Python>这本书是图灵科技翻译出版的一本书,作者Luciano Ramalho. 作者从Python的特性角度出发,以Python的数据模型和特殊方法为主线,主要介绍了pyth ... 
- [Unity3D]Unity3D游戏开发之连续滚动背景
			在诸如天天跑酷等2D游戏中.因为游戏须要表现出运动的感觉.通常都会使游戏背景连续循环滚动以增强视觉效果,那么今天.博主就来带领大家一起来实现连续滚动背景吧. 首先来讲述一下原理.准备两张连续的图片(博 ... 
- Enterprise Architect 生成项目类图
			Enterprise Architect使用教程: https://blog.csdn.net/chenglc1612/article/details/81083151 主要流程 --到此-自动生成完 ... 
