217.存在重复元素

题目描述

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。

示例 1:
输入:nums = [1,2,3,1]
输出:true
解释:元素 1 在下标 0 和 3 出现。

示例 2:
输入:nums = [1,2,3,4]
输出:false
解释:所有元素都不同。

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

代码

1.常规方法

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) 
    {
        int len = nums.size()-1;
        if(len <= 0)
        {
            return false;
        }
        for(int i = 0; i < len ; i++)
        {
            for(int j = i+1; j<=len ; j++)
            {
                if(nums[i]==nums[j]) //判断是否存在重复元素
                {
                    return true;
                }
            }
        }
        return false;
    }
};

常规方法的弊端:程序运行的时间过长,复杂度O(n^2).

2.哈希表法

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) 
    {
        unordered_set<int> seen;
        for(int num : nums)
        {
            if(seen.find(num) != seen.end())
            {
                return true;
            }
            seen.insert(num);
        }
        return false;
    }
};
posted @ 2025-08-25 22:39  开心猪扒  阅读(5)  评论(0)    收藏  举报