//官方使用异或运算来处理
class Solution
{
public:
int singleNumber(vector<int>&nums)
{
for(int i=1;i<nums.size();++i)
{
nums[0]^=nums[i]; //异或的性质
}
return nums[0];
}
};
//--------------------------------------------------
//使用map来处理,记录key出现的次数value,然后遍历
class Solution
{
public:
int singleNumber(vector<int>& nums)
{
map<int, int>mp;
int length = nums.size(); // 4 1 2 1 2
for (int i = 0; i < length; ++i)
{
mp.insert(pair<int, int>(nums[i], ++mp[nums[i]]));
}
/* int p = 0;
for (; p < mp.size(); ++p)
{
if (mp[nums[p]] == 1)
{
return nums[p];
break;
}
continue;
}*/
map<int, int>::iterator ite = mp.begin();
while (ite!=mp.end())
{
if (ite -> second ==1)
{
return ite->first;
}
++ite;
}
// return nums[p];
return ite->first;
}
};
lc.136 只出现一次的数字
最新推荐文章于 2024-11-12 13:55:23 发布