Menu
CoddyTech

Find the Duplicate Number

1부터 n까지의 정수로 이루어진 n+1개의 원소를 가진 배열 nums가 주어집니다. 정확히 하나의 값이 한 번 이상 중복해서 나타나며, 그 값을 반환합니다.

nums를 변경하지 않고 추가 메모리를 상수만큼만 사용하여 문제를 해결하세요.

함수

findDuplicate(nums: integer-array) → integer
numsinteger-array
각각 1부터 n 사이인 정수 n+1개
반환값integer
두 번 이상 나타나는 값

제약 조건

  • 1 ≤ n ≤ 104
  • nums.length == n+1
  • 1 ≤ nums[i] ≤ n
  • 정확히 하나의 값이 두 번 이상 나타나며, 다른 모든 값은 최대 한 번만 나타납니다.

예제

입력
nums = [2, 5, 1, 3, 5, 4]
출력
5
설명
여기서 n은 5이고, 5는 위치 1과 4에 있으므로 답은 5입니다. 1부터 5까지의 다른 모든 값은 한 번씩 나타납니다.

lock icon제출 시 숨은 테스트 +17개

challenge icon

후속 질문

값에 대한 이진 탐색은 두 규칙을 모두 O(n log n) 시간에 유지합니다. 두 규칙을 O(n) 시간에 유지할 수 있을까요?

코드 초기화
def findDuplicate(nums):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

입력

nums = [2, 5, 1, 3, 5, 4]

기대값

5