Find the Duplicate Number | Problem No. 287 | LeetCode
Question: Given an array of integers nums containing n + 1 integers where each integer is in the range [1, n] inclusive. There is only one repeated number in nums, return this repeated number.
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.
Approach 1: Sorting
Sort the given Array and then check for duplicate values by comparing values with the immediate next element.
class Solution {
public int findDuplicateNumber(int[] nums) {
Arrays.sort(nums);
for (int index =0; index < nums.length-1; index++) {
if (nums[index] == nums[index+1]) {
return nums[index];
}
}
return -1;
}
}