# 217. Contains Duplicate (Easy)

https://leetcode.com/problems/contains-duplicate/

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```

Example 3:

```Input: [1,1,1,3,3,4,3,2,4,2]
Output: true```

## Solutions

### 1.

``````class Solution {

// The easiest method is to use Set which does not allow duplicate elements.

public boolean containsDuplicate(int[] nums) {
if (nums == null || nums.length == 0) {
return false;
}

Set<Integer> set = new HashSet<>();
for (int i : nums) {
return true;
}
}

return false;
}
}
``````

### 2.

``````class Solution1 {

// Firstly, sort the elements so that all the elements of same value are adjacent.

public boolean containsDuplicate(int[] nums) {
if (nums == null || nums.length == 0) {
return false;
}

Arrays.sort(nums);
for (
int i = 0;
i < nums.length - 1; ++i) {
if (nums[i] == nums[i + 1]) return true;
}
return false;
}
}
``````

## Incorrect Solutions

``````class Solution {

// Failed solution that exceeds time limit

public boolean containsDuplicate(int[] nums) {
if (nums == null || nums.length == 0) {
return false;
}

// List is less efficient than set
List<Integer> list = new ArrayList<>();
for (int num : nums) {
if (list.contains(num)) {
return true;
}

}

return false;
}
}
``````