Skip to main content

My First Week in India: Expectations vs. Reality

My First Week in India: Expectations vs. Reality My First Week in India: Expectations vs. Reality Arriving in a new country is always a mix of excitement and apprehension. As I embarked on my journey to India, I had a set of expectations based on research, stories, and stereotypes. My first week in India has been a whirlwind of experiences that have both aligned with and diverged from my expectations. Here’s a comparison of what I anticipated versus what I actually encountered. Expectations Warm and Humid Weather: I expected the weather to be consistently warm and humid, as is often depicted in travel blogs and movies. Spicy Food: I anticipated a diet heavily spiced with rich and diverse flavors, given India’s renowned culinary reputation. Cultural Festivities: I was excited to witness vibrant cultural festivals and traditional celebrations throughout the year. ...

217. Contains Duplicate


217. Contains Duplicate

Difficulty: Easy

Problem Statement

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 appears more than once (at indices 0 and 3).


Example 2:

Input:
nums = [1, 2, 3, 4]
Output:
false
Explanation:
All elements are unique.


Example 3:

Input:
nums = [1, 1, 1, 3, 3, 4, 3, 2, 4, 2]
Output:
true
Explanation:
Several elements appear multiple times: 1, 3, 4, and 2.


Constraints:

  • 1 <= nums.length <= 10⁵

  • -10⁹ <= nums[i] <= 10⁹


Solution:



 
import java.util.Arrays;

class Solution {
    public boolean containsDuplicate(int[] nums) {
        Arrays.sort(nums); // Sort the array
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] == nums[i - 1]) return true;
        }
        return false;
    }
}



Sure! Let's go through each approach one by one with a simple explanation:


✅ 1. Using HashSet (Fast and most common)


HashSet<Integer> seen = new HashSet<>();
for (int num : nums) {
    if (seen.contains(num)) return true;
    seen.add(num);
}
return false;

How it works:

  • You keep adding numbers to a HashSet.

  • If you try to add a number that's already in the set → it means it's a duplicate → return true.

Time: O(n)
Space: O(n)


✅ 2. Sorting the array


class Solution {
    public boolean containsDuplicate(int[] nums) {
        Arrays.sort(nums);
        for (int i = 1; i < nums.length; i++) {
if(nums[i] ==nums[i-1])
return true;
        }
        return false;
    }
}
 

How it works:

  • First, sort the array.

  • Then, check if any two adjacent numbers are equal → if yes, duplicate exists.

Time: O(n log n)
Space: O(1) (if sorting in place)


✅ 3. Brute-force (Nested Loops)


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;

How it works:

  • Compare each element with every other element.

  • If you find any pair that's equal → return true.

Time: O(n²)
Space: O(1)


✅ 4. Using HashMap



HashMap<Integer, Boolean> map = new HashMap<>();
for (int num : nums) {
    if (map.containsKey(num)) return true;
    map.put(num, true);
}
return false;


How it works:

  • Similar to HashSet, but you're storing each number as a key in a HashMap.

  • If the key is already there → it's a duplicate.

Time: O(n)
Space: O(n)


Summary Table:

Approach Time Complexity Space Complexity Fast? Good for Interviews?
HashSet O(n) O(n) ✅✅✅
Sorting O(n log n) O(1) ✅✅
Brute-force O(n²) O(1) ✅ (for learning only)
HashMap O(n) O(n) ✅✅


Which one do you want to try implementing?

Comment below.


Comments

Popular posts from this blog

33. Search in Rotated Sorted Array

 33. Search in Rotated Sorted Array 📄 Problem Statement : There is an integer array nums sorted in ascending order (with distinct values). Before being passed to your function, nums may be rotated at an unknown pivot index k (where 1 <= k < nums.length ) such that the array becomes [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]] . You are given the array nums after the rotation and an integer target . Your task is to return the index of the target if it exists in nums , or return -1 if it does not exist. You must solve it in O(log n) time. 📚 Examples : Example 1 : Input: nums = [4,5,6,7,0,1,2], target = 0 Output: 4 Example 2 : Input: nums = [4,5,6,7,0,1,2], target = 3 Output: -1 Example 3 : Input: nums = [1], target = 0 Output: -1 📜 Constraints : 1 <= nums.length <= 5000 -10⁴ <= nums[i] <= 10⁴ All values of nums are unique . nums is a sorted array, possibly rotated . -10⁴ <= target <= 10⁴ ...

Chocolate Distribution Problem

Chocolate Distribution Problem Given an array  arr[]  of positive integers, where each value represents the number of chocolates in a packet. Each packet can have a variable number of chocolates. There are  m  students, the task is to distribute chocolate packets among  m  students such that -       i. Each student gets  exactly  one packet.      ii. The difference between maximum number of chocolates given to a student and minimum number of chocolates given to a student is minimum and return that minimum possible difference. Examples: Input: arr = [3, 4, 1, 9, 56, 7, 9, 12], m = 5 Output: 6 Explanation: The minimum difference between maximum chocolates and minimum chocolates is 9 - 3 = 6 by choosing following m packets :[3, 4, 9, 7, 9]. Input: arr = [7, 3, 2, 4, 9, 12, 56], m = 3 Output: 2 Explanation: The minimum difference between maximum chocolates and minimum chocolates is 4 - 2 = 2 by choosing following m packe...

How to Improve Your Communication Skills: Essential Tips for Effective Interaction

How to Improve Your Communication Skills: Essential Tips for Effective Interaction How to Improve Your Communication Skills: Essential Tips for Effective Interaction Effective communication is an essential skill that influences every aspect of our lives, from personal relationships to professional success. Improving your communication skills can lead to better interactions, clearer understanding, and more meaningful connections. This comprehensive guide provides detailed strategies and practical tips to help you enhance your communication abilities. 1. Listen Actively Active listening is the foundation of effective communication. It involves fully concentrating, understanding, responding, and then remembering what is being said. Here are some ways to practice active listening: Give Full Attention: Avoid distractions such as checking your phone or thinking about what you'll say next. Focus entirely on the speaker. ...