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

【LeetCode】217. Contains Duplicate

时间:2015-08-20 12:53:50      阅读:99      评论: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.

提示:

有两种思路:

  • 对输入的数组进行排序,然后比较相邻元素的值是否一致 - O(nlgn);
  • 利用Hash Set - O(n)。

代码:

排序方法:

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        return unique(nums.begin(), nums.end()) != nums.end();
    }
};

利用Hash Set:

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        unordered_set<int> unset;
        for (int i = 0; i < nums.size(); ++i) {
            if (unset.find(nums[i]) != unset.end()) return true;
            else unset.insert(nums[i]);
        }
        return false;
    }
};

【LeetCode】217. Contains Duplicate

标签:

原文地址:http://www.cnblogs.com/jdneo/p/4744529.html

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