// 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; } }