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.
Example 1
Input: [1,2,3,1] Output: true
Example 2
Input: [1,2,3,4] Output: false
Java
1. Using Linear search (takes more time)
1 2 3 4 5 6 7 8 | public boolean containsDuplicate(int[] nums) { for (int i = 0; i < nums.length; ++i) { for (int j = 0; j < i; ++j) { if (nums[j] == nums[i]) return true; } } return false; } |
2. Using sorting
1 2 3 4 5 6 7 8 | public boolean containsDuplicate(int[] nums) { Arrays.sort(nums); for (int i = 0; i < nums.length - 1; ++i) { if (nums[i] == nums[i + 1]) return true; } return false; } |
3. Using HashSet
1 2 3 4 5 6 7 8 9 | public boolean containsDuplicate(int[] nums) { Set<Integer> set = new HashSet<>(nums.length); for (int x: nums) { if (set.contains(x)) return true; set.add(x); } return false; } |
Python
1. Using Linear search (takes more time)
def containsDuplicate(arr): for i in range(0, len(arr)): if arr[i] in arr[i+1:]: return True return False
2. Using sorting
def containsDuplicate(arr): arr.sort() for i in range(0, len(arr)-1): if arr[i]==arr[i+1]: return True return False
3. Using Set
def containsDuplicate(arr): if len(arr) != len(set(arr)): return True return False