Leetcode算法题——只出现一次的数字

Leetcode算法题——只出现一次的数字

原题目

Leetcode算法题——只出现一次的数字

解题思路

第一时间想到的应该是排序,然后两两比较,找到不同的即可;但是任何一种排序方法的时间复杂度均不满足题目的要求。。。。
抓住题目的重点,其余数字由于是出现两次的,因此我们可以根据位异或运算的特点,相同数字异或运算的结果应为0,0与任何数字运算结果仍未起本身。

Java解答

public int singleNumber(int[] nums) { 
	int target=0;
	for(int i=0;i<nums.length;i++){
		target^=nums[i];
	}
	return target;
}

异或平时用的比较少。。。。比较难想到