首页 > 其他 > 详细

Leetcode31: Contains Duplicate

时间:2015-05-25 18:51:47      阅读:213      评论:0      收藏:0      [点我收藏+]

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!