解题思路
按位异或计算
简单来说,异或运算允许交换律的存在,比如这样
a ^ b ^ c = c ^ b ^ a a \verb ^ b \verb ^ c = c \verb ^ b \verb ^ a a^b^c=c^b^a
所以就可以简单的使用连续的异或来进行运算,这里使用普通的连续异或运算即可得到结果。
object Solution {
def singleNumber(nums: Array[Int]): Int = {
val len = nums.length
var res = 0
for(i <- 0 until len) res = res ^ nums(i)
res
}
}