[LeetCode] 217. Contains Duplicate(Python)
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
Author And Source
이 문제에 관하여([LeetCode] 217. Contains Duplicate(Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@iwsl1234/LeetCode-121.-Best-Time-to-Buy-and-Sell-StockPython
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
Author And Source
이 문제에 관하여([LeetCode] 217. Contains Duplicate(Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@iwsl1234/LeetCode-121.-Best-Time-to-Buy-and-Sell-StockPython저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)