About
I’ve decided to do a LeetCode a day, and picked an easy one to get me started #217 Contains Duplicate.
Description
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
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
Constraints
1 <= nums.length <= 105
-109 <= nums[i] <= 109
Thoughts
My initial instinct was to iterate through the array and compare each value. Then I considered sorting the array, then iterating and comparing i
to j
. In the end I converted the array to a Set
and compared the counts. While this may not be the fastest solution (O(n)) it is succinct and easy to understand.
Solution
- Convert the Array to a Set to automatically remove duplicates.
- Compare and return false unless they are equal
class Solution {
func containsDuplicate(_ nums: [Int]) -> Bool {
let set = Set(nums)
return nums.count != set.count
}
}