217 Contains Duplicate

给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数应该返回 true。如果每个元素都不相同,则返回 false。
详见:https://leetcode.com/problems/contains-duplicate/description/

Java实现:

方法一:

class Solution {
    public boolean containsDuplicate(int[] nums) {
        int n=nums.length;
        if(n==0||nums==null){
            return false;
        }
        Arrays.sort(nums);
        for(int i=1;i<n;++i){
            if(nums[i]==nums[i-1]){
                return true;
            }
        }
        return false;
    }
}

方法二:

class Solution {
    public boolean containsDuplicate(int[] nums) {
        int n=nums.length;
        if(n==0||nums==null){
            return false;
        }
        Map<Integer,Integer> m=new HashMap<Integer,Integer>();
        for(int val:nums){
            if(m.containsKey(val)){
                return true;
            }else{
                m.put(val,1);
            }
        }
        return false;
    }
}

C++实现:

方法一:

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

 方法二:

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        int size=nums.size();
        if(size==0||nums.empty())
        {
            return false;
        }
        unordered_map<int,int> m;
        for(int i=0;i<size;++i)
        {
            if(m.find(nums[i])!=m.end())
            {
                return true;
            }
            ++m[nums[i]];
        }
        return false;
    }
};

 参考:https://www.cnblogs.com/grandyang/p/4537029.html

posted on 2018-04-08 22:48  lina2014  阅读(112)  评论(0编辑  收藏  举报

导航