力扣链接:540. 有序数组中的单一元素
给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。
请你找出并返回只出现一次的那个数。
你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。
1.利用哈希表统计频次;
2.遍历哈希表,输出只只出现1次的数字;
3.over;
class Solution {
public:
int singleNonDuplicate(vector& nums) {
unordered_map umap;
for(auto & num : nums)
{
++umap[num];
}
for(auto it = umap.begin();it != umap.end(); it++)
{
if(it->second != 2)
{
return it->first;
}
}
return 0;
}
};
✅结果展示:



