quartz/content/SoftwareEngineering/Leetcode/0001 - Contains Duplicated.md
2024-10-11 10:48:26 +03:00

74 lines
2.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

https://leetcode.com/problems/contains-duplicate/description/
#leetcode
#interview
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`
Here's how you can solve the problem using Python. You can leverage the properties of sets to check for duplicates efficiently:
```python
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
# Create an empty set to store unique elements
seen = set()
# Iterate through each number in the input list
for num in nums:
# If the number is already in the set, it means it's a duplicate
if num in seen:
return True
# Otherwise, add the number to the set
seen.add(num)
# If no duplicates were found, return False
return False
```
### Explanation:
1. **Initialize a set**: `seen = set()`. Sets in Python do not allow duplicate values, which makes them useful for checking whether an element has already been seen.
2. **Iterate through `nums`**: For each number in the input list `nums`, check if it already exists in the `seen` set.
3. **Check for duplicates**:
- If `num` is already in `seen`, it means we've encountered a duplicate, so return `True`.
- If not, add `num` to the `seen` set.
4. If we iterate through the entire list without finding a duplicate, return `False`.
### Time Complexity:
- The time complexity is O(n), where n is the number of elements in the list. Checking and inserting into a set both have an average time complexity of O(1).
### Space Complexity:
- The space complexity is O(n) because, in the worst case, we might need to store all elements of the input list in the set.
This solution efficiently checks for duplicates using sets and is well-suited for the given constraints.