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;
}
};