给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数应该返回 true。如果每个元素都不相同,则返回 false。
详见:https://leetcode.com/problems/contains-duplicate/description/
Java实现:
方法一:
class Solution {
public boolean containsDuplicate(int[] nums) {
int n=nums.length;
if(n==0||nums==null){
return false;
}
Arrays.sort(nums);
for(int i=1;i<n;++i){
if(nums[i]==nums[i-1]){
return true;
}
}
return false;
}
}
方法二:
class Solution {
public boolean containsDuplicate(int[] nums) {
int n=nums.length;
if(n==0||nums==null){
return false;
}
Map<Integer,Integer> m=new HashMap<Integer,Integer>();
for(int val:nums){
if(m.containsKey(val)){
return true;
}else{
m.put(val,1);
}
}
return false;
}
}
C++实现:
方法一:
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
int size=nums.size();
if(size==0||nums.empty())
{
return false;
}
sort(nums.begin(),nums.end());
for(int i=1;i<size;++i)
{
if(nums[i]==nums[i-1])
{
return true;
}
}
return false;
}
};
方法二:
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
int size=nums.size();
if(size==0||nums.empty())
{
return false;
}
unordered_map<int,int> m;
for(int i=0;i<size;++i)
{
if(m.find(nums[i])!=m.end())
{
return true;
}
++m[nums[i]];
}
return false;
}
};
参考:https://www.cnblogs.com/grandyang/p/4537029.html