Leetcode题解 剑指 Offer 56 - I. 数组中数字出现的次数
PROBLEM
难度 中等
MY ANSWER
无。
BETTER SOLUTION
先遍历使用异或计算出独立数字a^b,然后找出a^b中一个为1的位,即a和b不相同的一位。用此位将数组分成含a的一组与含b的一组,可知这两组的其他数字都是若干对重复数字。对这两组进行异或,即可得出a与b。时间复杂度O(n),空间复杂度O(1)。
class Solution { |
SUMMARY
注意使用异或来获得若干对重复数字中的独立数字,并根据异或性质进行分组。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jayce's Blog!
评论