Description
Given a non-empty array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Example
Example 1:
Input: [2,2,1]
Output: 1
Example 2:
Input: [4,1,2,1,2]
Output: 4
Code
class Solution {
public int singleNumber(int[] nums) {
if(nums == null || nums.length <=0 ) {
return 0;
}
// 任何数和本身异或的结果为0
// 0和任何数异或的结果为任何数
int result = nums[0];
for(int i =1;i<nums.length;i++){
result ^= nums[i];
}
return result;
}
}