로딩
요청 처리 중입니다...

JAVA_LeetCode 287_Find the Duplicate Number

 JAVA_LeetCode 287_Find the Duplicate Number

JAVA_LeetCode 287_Find the Duplicate Number 풀이 class Solution { public int findDuplicate(int[] nums) { // 투 포인터를 이용, 싸이클을 돌려서 맞는 부분을 체크한다. int slow = nums[0], fast = nums[0]; do{ slow = nums[slow]; fast = nums[nums[fast]]; }while(slow != fast); slow = nums[0]; while(slow !

= fast){ slow = nums[slow]; fast = nums[fast]; } return slow; } } 투 포인터를 활용한 싸이클 탐지(플로이드 알고리즘 - 토끼와 거북이)를 사용 해당 배열을 변경하지 않고, 추가공간을 사용하지 않도록 한다. 두 포인터를 각각 1, 2칸씩 이동하고 만나게 한다음 시작점을 재검색한다. * 출처 https://leetcode.com/problems/find-t...