217 Contains Duplicate
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数应该返回 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