【LeetCode】数组中两个数的最大异或值 Java 题解
题目描述
给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n 。
进阶:你可以在 O(n) 的时间解决这个问题吗?
示例 1:
复制代码
思路分析
这个题目题意简单明了,容易理解。通过暴力法,可以枚举得到结果。
比较好的解法是参考官方题解解法,采用字典树的做法,提升算法的效率。
AC 代码
暴力解法
复制代码
字典树解法
复制代码
总结
暴力枚举方法的时间复杂度是 O(n * n), 空间复杂度是 O(1)
字典树的解法时间复杂度是 O(n log C), 空间复杂度是 O(n log C)
坚持每日一题,加油!
版权声明: 本文为 InfoQ 作者【HQ数字卡】的原创文章。
原文链接:【http://xie.infoq.cn/article/9cc3cd5cfc194779a8dfa6a02】。文章转载请联系作者。
评论