본문 바로가기
Leetcode

217. Contains Duplicate

by Doromi 2023. 10. 27.
728x90
반응형
주어진 정수 배열에서 중복된 숫자가 있는지 확인하는 문제입니다. 아래는 문제의 자세한 설명입니다:

문제 설명:

정수 배열 nums가 주어집니다. 이 배열에서 중복된 숫자가 존재하는지 여부를 판단하세요. 중복된 숫자가 하나라도 존재하면 true를 반환하고, 중복된 숫자가 없으면 false를 반환하세요.

예시:

Input: [1,2,3,1]
Output: true

배열에 중복된 숫자 1이 존재하므로 true를 반환합니다.

Input: [1,2,3,4]
Output: false

배열에 중복된 숫자가 없으므로 false를 반환합니다.

노트:

주어진 배열 nums의 길이는 10^5 이하입니다.
이 문제를 해결하는 간단한 방법은 배열을 순회하면서 숫자를 저장하면서 이미 저장한 숫자가 나타나면 true를 반환하는 것입니다. 또는 배열을 정렬한 후 인접한 원소들을 비교하여 중복 여부를 확인할 수도 있습니다. 해시맵(HashMap)을 사용하여 빠르게 중복 여부를 확인할 수도 있습니다.

 

 

방법 1: 배열을 순회하면서 중복 확인
public bool ContainsDuplicate(int[] nums) {
    HashSet<int> seen = new HashSet<int>();
    foreach (int num in nums) {
        if (seen.Contains(num)) {
            return true;
        }
        seen.Add(num);
    }
    return false;
}
방법 2: 정렬 후 인접한 원소 비교
public bool ContainsDuplicate(int[] nums) {
    Array.Sort(nums);
    for (int i = 1; i < nums.Length; i++) {
        if (nums[i] == nums[i - 1]) {
            return true;
        }
    }
    return false;
}
방법 3: 해시맵 사용
public bool ContainsDuplicate(int[] nums) {
    Dictionary<int, int> numMap = new Dictionary<int, int>();
    foreach (int num in nums) {
        if (numMap.ContainsKey(num)) {
            return true;
        }
        numMap[num] = 1;
    }
    return false;
}
728x90
반응형

'Leetcode' 카테고리의 다른 글

219. Contains Duplicate II  (0) 2023.10.28
268. Missing Number  (0) 2023.10.28
136. Single Number  (0) 2023.10.25
108. Convert Sorted Array to Binary Search Tree  (1) 2023.10.25
19. Remove Nth Node From End of List  (0) 2023.10.24