Skip to main content

Discover the best online resources for Indian students, including free courses, coding platforms, study tools, career resources and useful student gadgets.

Best Online Resources for Indian Students: Free Courses, Study Tools & Useful Gadgets Best Online Resources for Indian Students: Free Courses, Study Tools & Useful Gadgets College life has changed a lot. You no longer have to depend only on classroom notes, textbooks, or whatever your professor explains during a lecture. Today, a student with a laptop or even a smartphone can access lectures from universities, coding tutorials, practice questions, career courses, digital libraries, productivity tools, and communities from almost anywhere. But there is one problem. There are too many options. Search for "best online courses for students" and you will find hundreds of websites. Some are free, some require subscriptions, some offer certificates, and some are simply better suited to specific subjects. So instead of giving you a random list of websites, this guide focuses on something more useful: Which online resources are actu...

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

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

Learn how to improve communication skills as a student or fresher with practical tips for speaking clearly, active listening, interviews, presentations, and workplace communication.

How to Improve Communication Skills as a Student or Fresher How to Improve Communication Skills as a Student or Fresher You can have good technical skills, a strong resume and impressive projects, but if you struggle to communicate your ideas, it can hold you back in college, interviews and your first corporate job. The good news is that communication is a skill you can improve . You don't need perfect English, a huge vocabulary or a naturally confident personality. You simply need regular practice and a willingness to improve. In this guide, I'll share practical ways to improve your communication skills , especially if you're a student, fresher or someone starting their first job. Why Are Communication Skills Important? Communication affects much more than just speaking English. It includes how you listen, explain ideas, write messages, ask questions, respond to feedback and co...