若有一个数组,这个数组中的元素只有一个元素出现1个,其余元素均出现两次,找出这个出现1次的元素值。
public class Single {
//第一种常规判断解法,执行时间长
public int singleNumber(int[] nums) {
int temp = 0;
int j = 0;
if(nums.length == 1){
return nums[0];
}
for(int i=0; i<nums.length; i++){
temp = nums[i];
j = 0;
while(j<nums.length && nums[j]!=temp){
j++;
}
if(j == i){
j = i+1;
while(j<nums.length && nums[j]!=temp){
j++;
}
}
if(j == nums.length)
return temp;
}
return temp;
}
//第二种 异或运算解法,执行效率高
public int singleNumber(int[] nums) {
int single = 0;
for(int num: nums){
single ^= num;
}
return single;
}
}