https://leetcode.com/problems/contains-duplicate/description/
난이도 Easy
주어진 배열에서 중복된 값이 있으면(=2번 이상 등장하는 값이 있으면) True, 아니면 False 반환하는 문제
풀이 방식이 여러가지 있다
(1) brute force -> 모든 (i, j) 조합을 검사한다 -> O(n^2) -> timeout
(2) 정렬 -> 정렬한 뒤 한번 순회한다 -> 정렬하니 O(nlogn)
(3) hash set -> 하나씩 hash map 또는 set에 넣는다. 넣기 전에 이미 있는지 검사한다. -> O(n)
가장 효율적인건 해시 방식이다
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
seen = set()
for num in nums:
if num in seen:
return True
seen.add(num)
return False
반응형
'Online Judge > LeetCode' 카테고리의 다른 글
[LeetCode][Python] 1. Two Sums (0) | 2024.09.07 |
---|---|
[LeetCode][Python] 242. Valid Anagram (0) | 2024.09.07 |
[LeetCode][Python] 875. Koko Eating Bananas (0) | 2020.12.22 |
[LeetCode][Python] 1530. Number of Good Leaf Nodes Pairs (0) | 2020.12.08 |
[LeetCode][Python] 797. All Paths From Source to Target (0) | 2020.12.08 |