法一:异或运算
1、任何数和0做异或运算,结果仍是原来的数;
2、任何数和自身数做异或运算,结果为0;
3、异或运算满足交换律或结合律
func singleNumber(nums []int) int {
single:=0
for _,num:=range nums{
single ^=num//^是异或运算符
}
return single
}
时间复杂度:O(n),n为数组长度
空间复杂度:O(1)
法一:异或运算
1、任何数和0做异或运算,结果仍是原来的数;
2、任何数和自身数做异或运算,结果为0;
3、异或运算满足交换律或结合律
func singleNumber(nums []int) int {
single:=0
for _,num:=range nums{
single ^=num//^是异或运算符
}
return single
}
时间复杂度:O(n),n为数组长度
空间复杂度:O(1)