Consider ARR = [1, 2, 3, 4, 4], the duplicate integer value present in the array is 4. Hence, the answer is 4 in this case.
A duplicate number is always present in the given array.
The first line of the input contains an integer, 'T,’ denoting the number of test cases.
The first line of each test case contains a single integer, 'N', denoting the number of elements in the array.
The second line of each test case contains 'N' space-separated integers denoting the elements of the array 'ARR'.
For each test case, print a single integer - the duplicate element in the array.
Print the output of each test case in a separate line.
1 <= T <= 10
2 <= N <= 10 ^ 5
1 <= ARR[i] <= N - 1
Where 'T' denotes the number of test cases, 'N' denotes the number of elements in the array, and 'ARR[i]' denotes the 'i-th' element of the array 'ARR'.
Time limit: 1 sec
A simple method is to traverse through the array ARR to find the frequency of each number in the given array, and we will check if the frequency of the number is more than 1.
Therefore, our approach will be to iterate currentNumber from 1 to N - 1. In each iteration, we will traverse through the array ARR to find the frequency of currentNumber in the array. We will check if the frequency is more than 1, then there is a duplicate of the number currentNumber in the array ARR. In the end, we will return the duplicate integer value present in the array.
Algorithm:
The idea is to observe the fact that all array elements contain a value between 1 to N - 1. Our approach will be to construct an array to store the frequency of each element in the given array.
We will construct array frequency, which will store the frequency of each element in the array.
In the end, we will return the duplicate integer value present in the array.
Algorithm:
The idea is to maintain two pointers, fast and slow. The pointer slow goes forward one step, and the pointer fast goes forward two steps each time. The two pointers meet in a cycle when the pointer fast becomes equal to the pointer slow, and then the duplicate number must be the entry point of the cycle.
In the end, the variable slow will contain the duplicate element present in the array. So, we will return the variable slow.
Algorithm:
The idea is to observe the fact that the XOR of two same numbers gives 0. The given array contains values from 1 to N - 1 once and one duplicate value. Using this idea, we can find the duplicate element val in the array ARR in the following way given below:
duplicate= (1 ^ 1) ^ (2 ^ 2) ^ (3 ^ 3)....((N - 1) ^ (N - 1)) ^ val
The XOR value of each number with itself gives 0, and the remaining value will be the duplicate value val that is present in the array ARR.
Our approach will be to initialize the variable duplicate, which will store the duplicate integer value present in the array. We will set duplicate as 0.
In the end, the variable duplicate will contain the duplicate integer value present in the array ARR, and we will return the variable duplicate.
Algorithm:
Longest Subarray With Zero Sum
Merge Two Sorted Arrays Without Extra Space
Ninja And The Strictly Increasing Array
Negative To The End
Find Duplicate in Array