Leetcode 217. Contains Duplicate

原题: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.

给定一个数组,判断是否有重复的数字,没有内存方面的要求。

方法一:

将数组存入multset,统计每个数字出现的次数。

方法二:

新建一个bitmap,遍历数组,数组中每个数字 num作为 bitmap下标,num出现一次++bitmap[num]>2返回 true。

方法三:

将数组先排序,遍历,相邻数字是否相等。

排序可以使用sort,而且结果居然。。

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        
        if(nums.empty()) return false;
        if(nums.size()==1) return false;
        sort(nums.begin(),nums.end());
        vector<int>::iterator itr=nums.begin();
        vector<int>::iterator _itr=++itr;
        --itr;
        for(;_itr!=nums.end();++itr,++_itr){
            if(*itr==*_itr){
                return true;
            }
        }
        return false;
    }
};

posted @ 2016-04-06 10:06  J_Liao  阅读(208)  评论(0)    收藏  举报