본문 바로가기

알고리즘

[Algorithm] 217-Contains-Duplicate

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

 

Contains Duplicate - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

방법 1. HashSet 이용한 풀이

class Solution(object):
    def containsDuplicate(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
        inputNums = set()

        for i in (nums):
            inputNums.add(i)

        if len(inputNums) != len(nums):
            return True
        return False

 

for 문 도는 중간에 HashSet 에 이미 데이터가 들어있는지 확인하는 로직을 추가해 조금 더 개선해보았다.

class Solution(object):
    def containsDuplicate(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
        inputNums = set()

        for i in (nums):
        	# 이 로직 추가
            if i in inputNums:
                return True
            inputNums.add(i)

        return False

 

* Time Complexity - O(n)

* Space Complexity - O(n)

 


 

방법 2. sorting 을 이용한 풀이

step 1. sorting 함

step 2. for 문 돌면서 i 랑 i+1 번째 같은 지 비교

 

* Time Complexity - O(nLogn)

* Space Complaxity - O(1)

 

 


 

결론 - 공간 좀 들더라도 Time Complexity 줄이는 1번이 나은 것 같다

'알고리즘' 카테고리의 다른 글

[leetcode] 916. Word Subsets  (0) 2024.01.30
[Algorithm] 213-house-robber2  (0) 2022.05.27
[Algorithm] min-cost-climbing-stairs 문제  (0) 2022.05.21
[Algorithm] 편집 거리  (0) 2022.05.12
[Algorithm] 금광 문제  (0) 2022.04.27