跳至主要內容

Leetcode 217.存在重复元素

张威小于 1 分钟数据结构与算法哈希表

leetcode 217. 存在重复元素open in new window

题目描述:给定一个整数数组,判断是否存在重复元素。

如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。

方法一

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        unordered_set<int> set;
        for(auto i : nums) {
            if(set.find(i) != set.end()) {
                return true;
            }
            else {
                set.insert(i);
            }
        }
        return false;
    }
};

方法二 利用不能重复的特点(思路)

//利用set容器不能存储重复元素的特点
class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        unordered_set<int> set(nums.begin(), nums.end());
        if(nums.size() > set.size()) {
            return true;
        }
        return false;
    }
};

map

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
    	for(auto i : nums) {
            hash[i]++;
            if(hash[i] > 1) {
                return true;
            }
        }
        return false;
    }
};