Open
Description
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。
示例 :
输入: [1,2,1,3,2,5]
输出: [3,5]
https://leetcode-cn.com/problems/single-number-iii/
- 任何数与0进行异或都是自身
- 出现2次的数经过异或后都得到0抵消掉,剩下的就是单次出现的数。
- 由1和2 可以看出如果我们对数组的元素进行一次异或运算,最后得到的就是2个只出现一次的数的异或结果
- 在结果数中的任意一个bit位 表示 这2个数在这个bit位上是不一样的一个是0一个是1.
- 根据4,我们可以将这个数组进行分组,把这个位置上为1的分为一组,为0的分为1组,这样就可以把这个2个数分表落到2组中。
- 分表对这2组进行异或运算得到的2个数就是所求的2个数。
Metadata
Metadata
Assignees
Labels
No labels