说明
一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。
思路
- 全员异或得到 x = a^b
- x的二进制xi为1(表示第i位a和b不相等),以此来分成两组,一组该位值为1,另一组该位值为0
- 分别在每组全员^(异或)
实现
1 | /** |
人生已如此艰难,就不要再拆穿了
一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。
1 | /** |