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

Leetcode31: Contains Duplicate

时间:2015-05-25 18:54:10      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:algorithm   leetcode   

Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.

方法一:建立一个集合set,因为集合不包含重复元素,所以当vector转为set后,比较两个容器的大小,若set的大小小于vector那么肯定存在重复元素。

<span style="font-size:14px;">class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        set<int> a;
        for(int i = 0; i < nums.size(); i++)
        {
            a.insert(nums[i]);
        }
        if(a.size() < nums.size())
            return true;
        else    
            return false;
    }
};</span>
技术分享

方法二:哈希法。用一个set记录所有已经出现过的数字,下一个数字来时与set比较,若出现冲突,则包含重复元素,若不冲突,则不包含重复元素。

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        set<int> a;
        for(int i = 0; i < nums.size(); i++)
        {
            if(a.find(nums[i]) == a.end())
                a.insert(nums[i]);
            else    
                return true;
        }
        return false;
    }
};
技术分享

Leetcode31: Contains Duplicate

标签:algorithm   leetcode   

原文地址:http://blog.csdn.net/u013089961/article/details/45971117

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