public static int singleNumber(int[] nums) {
Arrays.sort(nums);
int count = 0;
int i = 0;
while(i < nums.length){
if(i == 0 || nums[i] == nums[i-1]) {
count++;
i++;
}else{
if(count == 1) {
if(i < nums.length) {
return nums[i-1];
}else {
return nums[i];
}
}else{
count = 1;
i+=1;
}
}
}
return count == 0 ?nums[0]:nums[i-1];
}