문제 링크 : https://leetcode.com/problems/contains-duplicate/
nums배열이 주어진 후 같은 숫자가 있으면 True, 없다면 False를 반환하는 문제이다..
우선 nums를 오름차순으로 정렬한 뒤, 정렬이 되면 같은 값이 있을 경우 같은 값끼리 정렬되게 되니 옆을 비교하며 True/False값을 반환할 수 있다..
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
nums.sort()
for i in range(1,len(nums)):
if nums[i] == nums[i-1]:
return True
return False
결과 :
Runtime: 572 ms, faster than 49.24% of Python3 online submissions for Contains Duplicate.
Memory Usage: 26.1 MB, less than 5.32% of Python3 online submissions for Contains Duplicate.
discuss에 보니 set함수를 이용하여 간단하게 푸는 방법이 있었다
set함수는 중복을 제거하는 함수로써 원래의 nums 과 set이후 nums 개수를 비교하는 알고리즘이다..
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
return len(set(nums)) != len(nums)
Runtime: 481 ms, faster than 79.82% of Python3 online submissions for Contains Duplicate.
Memory Usage: 26 MB, less than 30.37% of Python3 online submissions for Contains Duplicate.
22.06.12
다시 풀었을 때는 위의 discuss에 올라온 방법으로 풀었었다.
근데 이후에 사람들이 더 빨리 푸는 코드들을 제출했는지 퍼센테이지 더 낮게 나옴
Runtime: 957 ms, faster than 5.01% of Python3 online submissions for Contains Duplicate.
Memory Usage: 26 MB, less than 29.48% of Python3 online submissions for Contains Duplicate.