Problem: 260. 只出现一次的数字 III
思路
①map计数
②排序后,前后不一样的就是答案
class Solution {
public:
vector<int> singleNumber(vector<int>& nums) {
int n=nums.size();
vector<int>res;
//map计数
map<int,int>ma;
for(int i=0;i<n;i++){
ma[nums[i]]++;
}
for(auto [x,val]:ma){
if(val==1)res.push_back(x);
}
return res;
}
};
class Solution {
public:
vector<int> singleNumber(vector<int>& nums) {
int n=nums.size();
vector<int>res;
//排序后,前后不一样的就是答案
sort(nums.begin(),nums.end());
if(n==2)return nums;
if(nums[0]!=nums[1])res.push_back(nums[0]);
if(nums[n-1]!=nums[n-2])res.push_back(nums[n-1]);
if(res.size()==2)return res;
for(int i=1;i<n-1;i++){
if(nums[i]!=nums[i-1] && nums[i]!=nums[i+1]){
res.push_back(nums[i]);
}
}
return res;
}
};
标签:vector,nums,int,res,back,力扣,260,size
From: https://blog.51cto.com/u_15974747/8695914