Given an array of integers, every element appears three times except for one. Find that single one.
int singleNumber(int* nums, int numsSize)
{
if(numsSize==1)
return nums[0];
int i,j,k;
for(i=1;i<numsSize;i++)
{
for(j=i-1;j>=0;j--)
{
if(nums[i]>=nums[j])
{
break;
}
}
if(j!=i-1)
{
int temp=nums[i];
for(k=i-1;k>j;k--)
{
nums[k+1]=nums[k];
}
nums[k+1]=temp;
}
}
if(nums[0]!=nums[1])
{
return nums[0];
}
else
{
for(i=0;i<numsSize-1;i++)
{
if((nums[i]==nums[i+1])||(nums[i+1]==nums[i+2]))
{
continue;
}
else
{
return nums[i+1];
}
}
}
}