中文描述
integer类型数组,其中只有一个元素值出现一次,其他元素值仅出现一次,尽量不浪费空间,获取出现一次的元素值,时间复杂度o(n)。
说明
刚开始也不太明白,因为数组中的数字大小和正负没有限制,+-标记没有办法使用,后来也是看了别人的代码才知道的。只是为了考验逻辑运算符^(异或):任何相同二进制异或运算都得0,1^1=0,0^0=0,不相同的异或运算都得1,1^0=1,0^1=1。提示一个数异或两次变回本身。比如6^5^5=6,0异或任意数字都是该数字本身。
java代码
public class Solution {
public int singleNumber(int[] nums) {
int res = 0;
for(int n : nums){
res ^=n;
}
return res;
}
}
留言
先临时记录自己的方法,刷完easy题之后再去看别人的方法,如果有更好的方法,会做补充,如果你有的话请留言,谢谢啦