博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode: Maximum XOR of Two Numbers in an Array
阅读量:6817 次
发布时间:2019-06-26

本文共 942 字,大约阅读时间需要 3 分钟。

Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231.Find the maximum result of ai XOR aj, where 0 ≤ i, j < n.Could you do this in O(n) runtime?Example:Input: [3, 10, 5, 25, 2, 8]Output: 28Explanation: The maximum result is 5 ^ 25 = 28.

Solution 1: Bit Manipulation:

这题真心有点难,get the max XOR bit by bit

note that if A^B=C, then A^C=B, B^C=A

1 public class Solution { 2     public int findMaximumXOR(int[] nums) { 3         int mask = 0, max = 0; 4         for (int i=31; i>=0; i--) { 5             mask |= 1<
prefixes = new HashSet
(); 7 for (int each : nums) { 8 prefixes.add(each & mask); // reserve Left bits and ignore Right bits 9 }10 int tmpMax = max | (1<

Solution 2: Trie, (未研究)

https://discuss.leetcode.com/topic/63207/java-o-n-solution-using-trie

https://discuss.leetcode.com/topic/64753/31ms-o-n-java-solution-using-trie

转载地址:http://xgszl.baihongyu.com/

你可能感兴趣的文章
算法:街区最短路径问题
查看>>
Linux下Samba的配置
查看>>
如何取消IE“已限制此网页运行可以访问计算机的脚本或ActiveX控件”
查看>>
Android 所遇问题(一)
查看>>
2014年移动媒体趋势报告:中国网络媒体的未来
查看>>
设计模式(15)-Facade Pattern
查看>>
How to get URL parameters with Javascript?
查看>>
【转】易用性测试
查看>>
[翻译svg教程]svg中的circle元素
查看>>
***微信LBS地理位置开发+百度地图API(地理位置和坐标转换)
查看>>
如何获得WPA握手包&EWSA破解WPA密码教程[zz]
查看>>
CountDownTimer,0,0
查看>>
mac 终端 常用命令
查看>>
对VM挂载新加入的磁盘
查看>>
MyEclipse *的安装步骤和破解(32位和64位皆适用)(图文详解)
查看>>
如何撤销 PhpStorm/Clion 等 JetBrains 产品的 “Mark as Plain Text” 操作 ?
查看>>
使用maven创建web项目
查看>>
第三十八章 springboot+docker(maven)
查看>>
构建单页面应用
查看>>
BZOJ4078 : [Wf2014]Metal Processing Plant
查看>>