代码编织梦想

1. 排序

时间复杂度: nlogn -----> sort带来的

空间复杂度: n

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        sort(nums.begin(), nums.end());

        for(int i = 1; i < nums.size(); i++)
        {
            if(nums[i] == nums[i - 1])
                return true;
        }

        return false;
    }
};

2. 哈希法

主要思路就是   用哈希法检查该元素以前是否出现过  

时间复杂度: n ------>  遍历带来的

空间复杂度: n   -----> 开了一个set

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        unordered_set<int> set;

        for(int i = 0; i < nums.size(); i++)
        {
            auto it = set.find(nums[i]);
            if(it != set.end())
                return true;
            set.insert(nums[i]);
        }

        return false;
    }
};

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_52150630/article/details/130539993