剑指offer——只出现一次的数字

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

 

示例 1:

输入:nums = [2,2,3,2]
输出:3
示例 2:

输入:nums = [0,1,0,1,0,1,100]
输出:100
 

提示:

1 <= nums.length <= 3 * 104
-231 <= nums[i] <= 231 - 1
nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次
 题解:

注意vector的迭代器写法,对map的遍历

 1 class Solution {
 2 public:
 3     int singleNumber(vector<int>& nums) {
 4     map<int ,int> mapp;
 5      for (auto iter =nums.cbegin(); iter != nums.cend(); iter++) 
 6     {
 7         mapp[*iter]++;
 8     }
 9      for(auto iter:mapp)
10     {
11        if(iter.second==1)
12        {
13            return iter.first ;
14        }
15     }
16 return 0;
17     }
18 };

 

posted @ 2021-12-20 21:29  sylvia11  阅读(19)  评论(0编辑  收藏  举报