注意:题目的要求是线性的时间复杂度和常数空间复杂度。
所以考虑的是位运算。可使用异或运算。
异或运算自己和自己运算为0,和0异或结果为本身。
在这里插入图片描述
class Solution {
public int singleNumber(int[] nums) {
int single = 0;
for(int i = 0;i < nums.length; i++){
single ^=nums[i];
}
return single;
}
}
在这里注意一点:
在java中,^符号表示异或,而不是幂次方,需要注意。