找出一个数组中唯一一个出现2次的数字

找出一个数组中唯一一个出现2次的数字,不清楚是不是LeetCode上的题。本人默认是LeetCode上的题。

一个数组中有N个数字,但是只有一个数字出现了2次,其他的数字均不相同。这种问题一般应该采用hash方法实现。

让所有的数字都放到一个unordered_map中,key是数字,value是该数字出现的次数。

int main() {
    std::vector<int> v = {1,2,4,4,9,7};

    int res = 0;
    std::unordered_map<int, int> map;
    for (int i = 0; i < v.size(); i++) {
        map[v[i]]++;
        if (2 == map[v[i]]) {
            std::cout << "key=" << v[i] << " || value=" << map[v[i]] << std::endl;
            break; //因为只有一个数字出现2次,因此可以退出了
        }
    }

    return 0;
}

发布了199 篇原创文章 · 获赞 149 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/zgaoq/article/details/103652893
今日推荐