217. 存在重复元素(力扣)

1e5的数据量,要求时间复杂度小于O(n^2)

1.可以排序后判断是否出现相同数字,O(nlogn)

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        for(int i=0;i<nums.size()-1;i++)
        {
            if(nums[i]==nums[i+1])
                return true;
        }
        return false;
    }
};

2.可以使用set存入nums中,判断set和nums的大小是否相等,O(n)

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        set<int>s;
        for(int i=0;i<nums.size();i++)
            s.insert(nums[i]);
        if(s.size()==nums.size())return 0;
        else return 1;
    }
};

 

posted @ 2023-04-12 19:58  风乐  阅读(11)  评论(0)    收藏  举报