Contains Duplicate

Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.

 

Example 1:

Input: nums = [1,2,3,1]

Output: true

Explanation:

The element 1 occurs at the indices 0 and 3.

Example 2:

Input: nums = [1,2,3,4]

Output: false

Explanation:

All elements are distinct.

Example 3:

Input: nums = [1,1,1,3,3,4,3,2,4,2]

Output: true

 

Constraints:

  • 1 <= nums.length <= 105

  • -109 <= nums[i] <= 109

My Solution

We can solve this by iterating through the array and adding each element to a HashSet. If we ever see an element which is already in the HashSet, we return true because we have found a duplicate. If we reach the end of the array without seeing a duplicate we return false.

Time complexity would be O(n) because we iterate through the array once. Space complexity is also O(n) because we require O(n) space for the HashSet.

class Solution {
    public boolean containsDuplicate(int[] nums) {
        Set<Integer> distinct = new HashSet<>();

        for (int num : nums) {
            if (distinct.contains(num)) {
                return true;
            }

            distinct.add(num);
        }

        return false;
    }
}
Previous
Previous

Contains Duplicate II

Next
Next

Reverse Linked List