专栏名称: 吴师兄学算法
和程序员小吴一起从初学者的角度学习算法,以动画的形式呈现解题的思路。每周四篇原创文章,期待你的鉴赏!
今天看啥  ›  专栏  ›  吴师兄学算法

图解 LeetCode 第 421 题:数组中两个数的最大异或值

吴师兄学算法  · 公众号  ·  · 2019-10-14 12:15
点击蓝色“五分钟学算法”关注我哟加个“星标”,天天中午 12:15,一起学算法本文为读者投稿,作者 | 李威经作者授权转载,来源 |https://www.liwei.party今天分享的题目来源于 LeetCode 第 421 号问题:数组中两个数的最大异或值。在 异或 这个知识点里面属于一个中高难度的题目。题目描述 给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai 31 。找到 ai 和 aj 最大的异或 (XOR) 运算结果,其中0 ≤ i,  j 你能在 O(n) 的时间解决这个问题吗?示例:输入: [3, 10, 5, 25, 2, 8]输出: 28解释: 最大的结果是 5 ^ 25 = 28.题目解析 解决这个问题,我们首先需要利用异或运算的一个性质:如果 a ^ b = c 成立,那么a ^ c = b 与 b ^ c = a 均成立。即如果有三个数,满足其中两个数 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照