leetcode 421.Maximum XOR of Two Numbers in an Array

时间:2021-01-23 22:43:03

题目中给定若干个数,然后任意选定两个数使得其异或值最大。

先利用样例中的: 3 10 5 25 2 8 这些数转换为二进制来看的话那么是先找到最高位的1然后与数组中其他的数相与后的数值保存到set中去,然后利用性质: a^b=c则a^c=b,在set中只要有异或值的存在的话就说明是符合条件的 。

class Solution {
public:
int findMaximumXOR(vector<int>& nums) {
int res=,mask=;
for(int i=;i>=;i--){
mask|=(<<i);
set<int> st;
for(int a:nums){
st.insert(a&mask);
}
int temp=res|(<<i);
for(int num:st){
if(st.count(temp^num)){
res=temp;
break;
}
}
}
return res;
}
};

leetcode 421.Maximum XOR of Two Numbers in an Array的更多相关文章

  1. &lbrack;LeetCode&rsqb; 421&period; 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 ...

  2. &lbrack;LeetCode&rsqb; 421&period; 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 ...

  3. 【LeetCode】421&period; Maximum XOR of Two Numbers in an Array 解题报告(Python & C&plus;&plus;)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 依次遍历每一位 前缀树 日期 题目地址:https://lee ...

  4. 【leetcode】421&period; Maximum XOR of Two Numbers in an Array

    题目如下: 解题思路:本题的难点在于O(n)的复杂度.为了减少比较的次数,我们可以采用字典树保存输入数组中所有元素的二进制的字符串.接下来就是找出每个元素的异或的最大值,把需要找最大值的元素转成二进制 ...

  5. 421&period; 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 ...

  6. 421 Maximum XOR of Two Numbers in an Array 数组中两个数的最大异或值

    给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231 .找到 ai 和aj 最大的异或 (XOR) 运算结果,其中0 ≤ i,  j < ...

  7. 421&period; Maximum XOR of Two Numbers in an Array

    这题要求On时间复杂度完成, 第一次做事没什么思路的, 答案网上有不贴了, 总结下这类题的思路. 不局限于这个题, 凡是对于这种给一个  数组,  求出 xxx 最大值的办法, 可能上来默认就是dp, ...

  8. LeetCode 421&period; 数组中两个数的最大异或值&lpar;Maximum XOR of Two Numbers in an Array&rpar; 71

    421. 数组中两个数的最大异或值 421. Maximum XOR of Two Numbers in an Array 题目描述 给定一个非空数组,数组中元素为 a0, a1, a2, - , a ...

  9. &lbrack;LeetCode&rsqb; 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 ...

随机推荐

  1. JS对象深刻理解 - 1

    JavaScript创建对象   JavaScript 有Date.Array.String等这样的内置对象,功能强大使用简单,人见人爱,但在处理一些复杂的逻辑的时候,内置对象就很无力了,往往需要开发 ...

  2. 解决 docker on windows下网络不通

    问题:公司有一台闭置的windows服务器,于是想利用起来,但是在启动容器后始终无法通信成功. 研究: 1. 发现安装包中包含virtualbox, 于是怀疑windows下的docker是在virt ...

  3. Mac 安装终端软件

    1.安装或者重新安装lua环境 下载 lua 地址: http://www.lua.org/versions.html 1.进入 lua 目录 2.make macosx 3.sudo make in ...

  4. HDU-3853 LOOPS(概率DP求期望)

    题目大意:在nxm的方格中,从(1,1)走到(n,m).每次只能在原地不动.向右走一格.向下走一格,概率分别为p1(i,j),p2(i,j),p3(i,j).求行走次数的期望. 题目分析:状态转移方程 ...

  5. django - 替换admin的textarea为 富文本

    1. 安装这个:https://github.com/pydanny/django-wysiwyg 2. 下载你希望的 编辑器,到你的指定路径STATIC_ROOT [详细后面补充]

  6. 常用JS模板

    var _win, _doc, _stt, _do = document.domain, _arr = _do.split("."); function _st() { try { ...

  7. &lbrack;React Testing&rsqb; className with Shallow Rendering

    The React Shallow Renderer test utility lets us inspect the output of a component one level deep. In ...

  8. 《剑指Offer》算法题——&OpenCurlyDoubleQuote;旋转数组”的最小数字

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减序列的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数 ...

  9. 关于C&num;的学习心得体会

    1·多看多写 多看网上成熟的demo,养成一个良好的代码编写习惯,将终生受益 2·多编多敲 看了代码,理解demo中的思路,灵活运用到自己的代码中,这样不仅了解了别人的代码,同时还了解了代码的执行过程 ...

  10. Cookie实现--用户上次访问时间

    用户上次访问时间