不占用空间统计出数组中只有一个元素出现一次
2020-06-27 本文已影响0人
历十九喵喵喵
现在有一个整数类型的数组,数组中素只有一个元素只出现一次,其余的元素都出现两次。
注意:
你需要给出一个线性时间复杂度的算法,你能在不使用额外内存空间的情况下解决这个问题么?
思路:
其实这道基础题就是让你熟悉异或法则:
1.0异或一个数等于这个数的本身。
2.两个相同的数异或为0。
“数组中素只有一个元素只出现一次” 这个条件很重要,你利用上面的异或法则,把数组元素都进行异或之后,就可以得到这个只出现一次的数组元素了。
public class Solution {
/*
*
*
* @param A int整型一维数组
* @return int整型
*/
public int singleNumber (int[] A) {
// write code here
int result = 0;
for (int v:A)
result = result ^ v;
return result;
}
}