LeetCode刷题记录—— 217. 存在重复元素

Posted Esperanza203

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode刷题记录—— 217. 存在重复元素相关的知识,希望对你有一定的参考价值。

class Solution {
    //方法零:暴力搜索 (n^2) 超出时间限制
    /*public:
    bool containsDuplicate(vector<int>& nums) {
        for(int i=0;i<nums.size();i++){
            for(int j=i+1;j<nums.size();j++){
                if(nums[i]==nums[j]){
                    return true;
                }
            }
        }
        return false;
    }*/
    //方法一:遍历数组,将数组中每个数作为key存入map中,插入map前先查询map中是否已经含有该key,若有则数字重复(实质上也是暴力搜索)
/*  public:
    bool containsDuplicate(vector<int>& nums) {
        map<int, int> m1;
        for (auto i = nums.cbegin(); i != nums.cend(); i++) {
            auto pos = m1.find(*i);
            if(pos != m1.end()){
                return true;
            }else {
                m1[*i] = 1;
            }
        }
        return false;
    }*/
    //方法二(更优!):先对数组进行排序(nlogn),再遍历排序后数组,比较相邻的两个数是否相同
    public:
    bool containsDuplicate(vector<int>& nums) {
        if(nums.empty())
            return false;
        sort(nums.begin(), nums.end()
        );
        int temp = nums.front();
        int flag = 0;
        for(int n : nums) {
            if(n==temp&&flag==1)
                return true;
            else
                temp=n;
            flag=1;
        }
        return false;
    }
};

以上是关于LeetCode刷题记录—— 217. 存在重复元素的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—217. 存在重复元素(哈希表)—day11

LeetCode刷题217-简单-存在重复元素

leetcode刷题38.存在重复元素——Java版

LeetCode刷题模版:211 - 220

LeetCode刷题模版:211 - 220

LeetCode刷题模版:211 - 220