Prompt
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.
Examples
- Example 1:
- Input: nums = [1,2,3,1]
- Output: true
- Example 2:
- Input: nums = [1,2,3,4]
- Output: false
- Example 3:
- Input: nums = [1,1,1,3,3,4,3,2,4,2]
- Output: true
Solution
In C++
bool containsDuplicate(vector<int>& nums) {
unordered_set<int> set;
for (int num : nums) {
if (set.contains(num)) return true;
set.insert(num);
}
return false;
}Explanation
Gradually add the numbers from the input list into an unordered set, checking if the current number is already in the set. If there is a duplicate true, else false. Very simple.
Big O Analysis
Time Complexity
The time complexity is , where is the size of the input list. See Amortized Notation.
Auxiliary Space Complexity
The space complexity is , where is the size of the input list