Contains Duplicate

Sett·2021년 7월 8일
1

문제

https://leetcode.com/problems/contains-duplicate/

문제 접근

  1. 이중 포문으로 풀 생각을 했음!

  1. 위의 1, 2 같은 형태로 탐색하면 시간 초과가 날까봐
  2. 3, 4 같은 형태로 탐색하려고 했음
  3. 시간 초과 남... 읭...
  • 시간 초과 난 소스코드
func containsDuplicate(_ nums: [Int]) -> Bool {
    var result: Bool = false
    var tempNums = nums
    tempNums.sort(by: <)
    for i in 0..<tempNums.count - 1 {
        if (tempNums[i] == tempNums[i+1]) {
            result = true
            break
        }
    }
    return result
}
  1. 정렬한 다음 내 위치하고 내 다음 위치만 비교하도록 했다.
    정렬 하면 비슷한 수끼리 ex) [1, 1, 2, 3, 4] 모이기 때문에 다음 수와 비교하면 시간 복잡도를 O(n^2)에서 O(n)(맞나..?) 으로 줄일 수 있다.

소스 코드

func containsDuplicate(_ nums: [Int]) -> Bool {
    var result: Bool = false
    var tempNums = nums
    tempNums.sort(by: <)
    for i in 0..<tempNums.count - 1 {
        if (tempNums[i] == tempNums[i+1]) {
            result = true
            break
        }
    }
    return result
}
profile
안녕하세요

0개의 댓글

관련 채용 정보