top of page

80. Interview: Contains Duplicate (LeetCode Easy)

Writer: Hui WangHui Wang


Solution 1:

  • Time complexity : O(nlogn)

  • Space complexity : O(1)

After sorting an array, iterate through it using Two Pointers.

  • If two pointers (index and index + 1) that are next to each other have the same value, there is a duplicate element, and the function returns true.

  • If there are no duplicate elements, both pointers continue to move simultaneously.

  • If the iteration is complete and there are no duplicate elements, return false.


class Solution {
    func containsDuplicate(_ nums: [Int]) -> Bool {
        var newNums = nums
        newNums.sort()
        for index in 0..<newNums.count - 1 {
            if newNums[index] == newNums[index + 1] {
                return true
            }
        }
        return false
    }
}

Solution 2:


Use Set:

  • Iterate over the array and put the numbers in the Set.

  • If the number is already in the Set, return true.

  • If the iteration is complete and there are no duplicate elements, return false.


class Solution {
    func containsDuplicate(_ nums: [Int]) -> Bool {
        var distinctSet = Set<Int>()
        for num in nums {
            if distinctSet.contains(num) {
                return true
            } else {
                distinctSet.insert(num)
            }
        }
        return false
    }
}

Solution 3:

  • Time complexity : O(n)

  • Space complexity : O(n)

This problem can be solved with one line of code.


class Solution {
    func containsDuplicate(_ nums: [Int]) -> Bool {
        nums.count != Set(nums).count
    }
}

 

Follow me on:

Comentarios


Never Miss a Post. Subscribe Now!

I am an iOS developer, and I will share some knowledge related to iOS development from time to time.

Thanks for submitting!

© 2022 by (Foks) Hui Wang

bottom of page