剑指 Offer 56 - II. 数组中数字出现的次数 II
集体思路:使用哈希表
算法流程:
- 使用哈希表将nums中的数值和是否出现多次映射。
- 每次映射查找n是否已在哈希表中,在则将此值记为false,否则true.
- 遍历nums,查找nums值对应的哈希表res[nums]是否为真,为真则返回结果nums.
class Solution {
public:
int singleNumber(vector<int>& nums) {
//使用哈希表
unordered_map<int,bool> res;
int ans;
for(int n : nums)
res[n] = (res.find(n) == res.end()); //查找n是否在集合表中,在为false
for(int n : nums)
if(res[n])
ans = n;
return ans;
}
};