Find the Duplicate Number - Array - Medium - LeetCode
💻 coding

Find the Duplicate Number - Array - Medium - LeetCode

1 min read 203 words
1 min read
ShareWhatsAppPost on X
  • 1The problem requires finding a duplicate number in an array of integers with specific constraints.
  • 2The solution must achieve O(n) time complexity and O(1) space complexity without modifying the input array.
  • 3The provided algorithm utilizes the Floyd's Tortoise and Hare cycle detection method to identify the duplicate.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The problem requires finding a duplicate number in an array of integers with specific constraints."

Find the Duplicate Number - Array - Medium - LeetCode

Given an array of integers nums containing n + 1 integers where each integer is in the range [1, n] inclusive.

There is only one duplicate number in nums, return this duplicate number.

Follow-ups:

How can we prove that at least one duplicate number must exist in nums? Can you solve the problem without modifying the array nums? Can you solve the problem using only constant, O(1) extra space? Can you solve the problem with runtime complexity less than O(n2)?

Example 1:

Input: nums = [1,3,4,2,2] Output: 2 Example 2:

Input: nums = [3,1,3,4,2] Output: 3 Example 3:

Input: nums = [1,1] Output: 1 Example 4:

Input: nums = [1,1,2] Output: 1

Constraints:

2 <= n <= 3 * 104 nums.length == n + 1 1 <= nums[i] <= n All the integers in nums appear only once except for precisely one integer which appears two or more times.

public class Solution {
 public int FindDuplicate(int[] nums) {
 if(nums.Length<1){
 return 0;
 }
 
 int slow = nums[0];
 int fast = nums[nums[0]];
 
 while(slow != fast){
 slow = nums[slow];
 fast = nums[nums[fast]];
 }
 
 fast = 0;
 while(slow != fast){
 slow = nums[slow];
 fast = nums[fast];
 }
 
 return slow;
 }
}

Time Complexity: O(n)

Space Complexity: O(1)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 18 November 2020 · 1 min read · 203 words

Part of AskGif Blog · coding

You might also like