题目
在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。
示例 1:输入:nums = [3,4,3,3] 输出:4
示例 2:输入:nums = [9,1,7,9,7,9,7] 输出:1
解答
使用sort()对数据进行排序,理论上nums[3i]==nums[3i+2],否则就出现只有1次的数字的情况。
class Solution {
public:
int singleNumber(vector<int>& nums) {
sort(nums.begin(), nums.end());
for(int i = 0; i < nums.size(); i += 3){
if(i < nums.size() - 1 && nums[i] != nums[i + 2]) return nums[i];
}
return nums[nums.size() - 1];
}
};