异或运算符
^是异或运算符,异或的规则是转换成二进制比较,相同为0,不同为1;
例如:2^4 表示数字2和4的异或位运算,在运算过程中,首先要把数字2和4都转换为二进制的,2的二进制为010,4的二进制为100,再像我们平时算加减法一样列成竖式运算,同位不同的运算结果为1,相同的为0,所以计算结果为110,即6;
single-number
题目:给定一个非空的整数数组,除了一个元素外,每个元素都会出现两次。
解决方式:用异或方法可以找出数组中没有重复的那个数;
思路:数组中元素都是成双成对的,只有一元素都是单的,异或方法就像消消乐一样,相同的两个元素都可以抵消掉变为0,最后就剩下了一个元素,0和该元素做异或运算,就是该元素本身;
class Solution {
public int singleNumber(int[] nums) {
int res = 0;
for (int num : nums) {
res ^= num;
}
return res;
}
}