CCCPaste

Contains Duplicate - LeetCode

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

class Solution {
    // Brute force 
    // Time Complexity: O(n^2)
    // Space Complexity: O(1)
    // Below solution leads to time limit exceeded on LeetCode
    // public boolean containsDuplicate(int[] nums) {
    //     for(int i = 0; i < nums.length; i++) {
    //         for(int j = i + 1; j < nums.length; j++) {
    //             if(nums[i] == nums[j]) {
    //                 return true;
    //             }
    //         }
    //     }

    //     return false;
    // }

    // Using HashSet
    // Time Complexity: O(n)
    // Space Complexity: O(n)
    // public boolean containsDuplicate(int[] nums) {
    //     Set set = new HashSet<>();

    //     for(int i = 0; i < nums.length; i++) {
    //         set.add(nums[i]);
    //     }

    //     return set.size() != nums.length;
    // }

    // Using HashSet (Optimized)
    // Time Complexity: O(n)
    // Space Complexity: O(n)
    public boolean containsDuplicate(int[] nums) {
        Set set = new HashSet<>();

        for(int i = 0; i < nums.length; i++) {
            if(set.contains(nums[i])) {
                return true;
            }

            set.add(nums[i]);
        }

        return false;
    }
}