[LeetCode] 217. Contains Duplicate(Python)

2867 단어 구현구현

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

Problem

배열에 숫자가 하나씩만 있는지 판별하면되는 문제

Solution

2중 for문을 쓰면 시간초과. 나같은 경우는 Counter이용

아래와 같이 이중포문으로 풀면 시간 초과 ㅠ




Counter라이브러리의 생성 시간복잡잡도는 O(n) for문도 O(n)이므로 이문제는 O(n)으로 풀수있음.

다른 사람들 중 유쾌하게 푼사람 보면 이럼.
return len(nums) > len(set(nums))
set는 독립적으로 만들어 주므로 길이를 체크하여.....소름

정답 Python Code

from collections import Counter
class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        
        # chk=False
        # for i in range(0,len(nums)):
        #     for j in range(i+1,len(nums)):
        #         if nums[i]==nums[j]:
        #             chk=True
        #             break
        # return chk
        c=Counter(nums)
        chk=False
        for key,value in c.items():
            if value>=2:
                chk=True
                break
        return chk

좋은 웹페이지 즐겨찾기