문제설명
- 정수 배열이 주어졌을 때, 중복된 값이 존재한다면
true
를 반환하고 중복된 값이 없다면false
를 반환하라.
문제풀이
- 값을 저장하고 빠르게 찾을 수 있는 자료구조인 Set을 사용한다.
- 배열을 한 번만 순회하여 값이 존재한다면 바로 true를 반환한다.
- 값이 없다면 set에 넣어서 다음 숫자의 검사에 사용될 수 있도록한다.
func containsDuplicate(_ nums: [Int]) -> Bool {
var set = Set<Int>()
for num in nums {
if set.contains(num) {
return true
} else {
set.insert(num)
}
}
return false
}
print(containsDuplicate([1,2,3,1])) // true
print(containsDuplicate([1,2,3,4])) // false
print(containsDuplicate([1,1,1,3,3,4,3,2,4,2])) // true
'알고리즘풀이' 카테고리의 다른 글
LeetCode: Intersection of Two Arrays II (0) | 2021.03.31 |
---|---|
LeetCode: Single Number (0) | 2021.03.30 |
LeetCode: Rotate Array (0) | 2021.03.29 |
LeetCode: Best Time to Buy and Sell Stock II (0) | 2021.03.28 |
LeetCode: Remove Duplicates from Sorted Array (0) | 2021.03.27 |