题目链接:力扣
思路:
排序nums,三个一组判断是否相等,如果不相等返回第一个数
class Solution {
public:
int singleNumber(vector<int>& nums) {
if(nums.size()==1)
return nums[0];
sort(nums.begin(),nums.end());
int p;
int q;
int i=0;
while(i<nums.size())
{
if(i+2<nums.size()&&i+1<nums.size()&&nums[i]==nums[i+1]&&nums[i+1]==nums[i+2])
{
i=i+3;
}
else
break;
}
return nums[i];
}
};
注意:while遍历数组中if要加条件防止数组越界