刷Leetcode的时候遇到一道看似简单但是无法实现的题目:
No.136 数组中大部分数字都会出现两次,只有一个数字只出现一次,找出这个数字
百思不得其解,尤其是题目要求线性复杂度,且最好不要使用额外的空间。
看答案才知道有按位异或这种操作,记录在此:
按位异或是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相应的二进位不同则此位为 1,相同为 0。在本例中, 101 与 011 进行按位异或操作的结果为 110 ,对应十进制数为 6 。
刷Leetcode的时候遇到一道看似简单但是无法实现的题目:
No.136 数组中大部分数字都会出现两次,只有一个数字只出现一次,找出这个数字
百思不得其解,尤其是题目要求线性复杂度,且最好不要使用额外的空间。
看答案才知道有按位异或这种操作,记录在此:
按位异或是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相应的二进位不同则此位为 1,相同为 0。在本例中, 101 与 011 进行按位异或操作的结果为 110 ,对应十进制数为 6 。