码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-01-07 13:23:19      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:contain   ++   查询   class   nlogn   相同   map   temp   题记   

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刷题记录(1)—— 217. 存在重复元素

标签:contain   ++   查询   class   nlogn   相同   map   temp   题记   

原文地址:https://www.cnblogs.com/esperanza/p/12160777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!