mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-27 23:04:05 -06:00
74 lines
2.2 KiB
Markdown
74 lines
2.2 KiB
Markdown
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. |