leetcode 217. Contains Duplicate 遍历 + HashSet

来源:互联网 发布:单片机步进电机驱动器 编辑:程序博客网 时间:2024/06/05 03:42

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.

题意很简单,只需要HashSet遍历一次即可。

代码如下:

import java.util.HashSet;import java.util.Set;/* * HashSet编译一次即可 * */public class Solution {    public boolean containsDuplicate(int[] nums)     {        if(nums==null || nums.length<=1)            return false;        Set<Integer> mySet=new HashSet<>();             for(int i=0;i<nums.length;i++)        {            if(mySet.contains(nums[i]))                return true;            else                mySet.add(nums[i]);        }        return false;    }}

下面是C++的做法,就是使用set或者map做一次遍历

代码如下:

#include <iostream>#include <vector>#include <queue>#include <stack>#include <string>#include <set>#include <map>#include <algorithm>using namespace std;class Solution {public:    bool containsDuplicate(vector<int>& nums)     {        if (nums.size() <= 1)            return false;        map<int, int> mmp;        for (int i : nums)        {            if (mmp.find(i) != mmp.end())                return true;            else                mmp[i] = 1;        }        return false;    }};