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;
    }
}

Reference: leetcode.com/problems/find-the-duplicate-nu..