码迷,mamicode.com
首页 > 编程语言 > 详细

[剑指 Offer 56 - II. 数组中数字出现的次数 II]

时间:2020-09-24 20:58:48      阅读:28      评论:0      收藏:0      [点我收藏+]

标签:solution   ber   ret   ++   public   class   数字   数组   c++   

[剑指 Offer 56 - II. 数组中数字出现的次数 II]

在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。

示例 1:

输入:nums = [3,4,3,3]
输出:4

示例 2:

输入:nums = [9,1,7,9,7,9,7]
输出:1

限制:

1 <= nums.length <= 10000
1 <= nums[i] < 2^31

方法1:使用hash的方式,对数组中的数值进行存储,key为数组中的每个数值,data为数值出现的次数

class Solution {
public:
    unordered_map<int,int>map;
public:
    int singleNumber(vector<int>& nums) {
        for(int num : nums) {
            map[num]++;
        }
        for (int num : nums) {
            if (map[num] == 1) {
                return num;
            }
        }
        return 0;
    }
};

方法2:看到说是可以使用异或的方式,奈何还没看懂

[剑指 Offer 56 - II. 数组中数字出现的次数 II]

标签:solution   ber   ret   ++   public   class   数字   数组   c++   

原文地址:https://www.cnblogs.com/wangdongfang/p/13715714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!