leetcode217-- Contains Duplicate

leetcode217-- Contains Duplicate

题目

意思是判断一个数组中是否有重复的元素,有的话就返回true,没有的话就返回false

解答

用python的话非常简单,一行就可以了

class Solution(object):
    def containsDuplicate(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
        return len(set(nums))<len(nums)
        

用c++的话,不用set的话,可以先遍历一次建立一个字典,是以值为Key,这样如果有重复的话,字典的长度一定会变短。


class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        unordered_map<int, int> m;
        for(int i=0;i<nums.size();i++){
            m[nums[i]] = i;
        }
        return nums.size()>m.size();
    }
};

不过得用c++中的set的话也是可以的

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        return nums.size() > set<int>(nums.begin(),nums.end()).size(); 
    }
};


打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦