Missing number in Arithmetic progression

Easy
0/40
Average time to solve is 15m
35 upvotes
Asked in companies
BNY MellonAdobeSamsung

Problem statement

You are given a sorted array of ‘N’ distinct integers that are in the Arithmetic Progression sequence except for one element which is missing from the sequence. You have to find that missing number from the given sequence.

Note:
1. A sequence [arr0, arr1,…, arr(n-1)] is called an Arithmetic progression if for each 'i' ( 0 ≤ i < n - 1) the value arr[i+1] − arr[i] is the same. 
2. There is exactly one missing number in the given sequence.
3. All the numbers present in the sequence are distinct.
4. It is the guarantee that the first and last elements of the sequence are not missing elements.
Follow Up
The overall run time complexity should be O(log(N)).
Detailed explanation ( Input/output format, Notes, Images )
Input Format:
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 positive integer ‘N’ denoting the number of the elements present in the sequence. 

The second line of each test case contains ‘N’ space-separated integers.
Output Format:
The only line of output of each test case should contain an integer denoting the missing element in the given sequence.

Print the output of each test case in a separate line.
Constraints:
1 <= T <= 50
3 <= N <= 10 ^ 4   
-10 ^ 9 <= Arr[i] <= 10 ^ 9 

Where ‘T’ is the number of test cases, ‘N’ is the size of the array and ‘Arr[i]’ is the size of the array elements.

Time Limit: 1 sec
Sample Input 1:
2
3
1 4 10
4
5 10 20 25 
Sample Output 1:
 7
 15
Explanation for sample input 1:
Test case 1:

The arithmetic sequence present in the first test case will have its first term as 4 and common difference as 3. So, the complete sequence will look like this ....- 1 4 7 10... Hence 7 is the missing element in the given sequence.

Test case 2:

The first term and common difference will be 5. The complete sequence will be ...5 10 15 20 25.... Hence 15 is the missing element from the given sequence.
Sample Input 2:
3
3
-1 0 2
5 
10 20 30 50 60
4
12 18 21 24
Sample Output 2:
1
40
15
Hint

Try checking the difference between adjacent elements.

Approaches (2)
Linear Search
  • First of all, we find the first term and the common difference of the given sequence.
  • As we know that the given sequence is sorted therefore, the first term of AP will be the first number present in the given sequence, i.e., arr[0].
  • We know that there are ‘N’ elements in the sequence except for the one element which is missing, so the total number of elements that should be in the sequence will be N+1. Thus the last element of the sequence should be (N+1)th term of the given sequence.
  • To find the common difference let's use the formula:-
        1. A(N) =  a + (N-1)*d, where A(N) is the Nth term, a is the first term and d is the common difference of the AP.
        2. We will use the above formula to find common difference

            A(N+1)  = a + N*d 
            arr[n-1] = arr[0] + N*d
            Hence, d = (arr[n-1] - arr[0]) / N 

  • Now we know the common difference of AP we will check if the difference between adjacent elements of the sequence has this as their difference or not. If the difference between adjacent elements is not the same as the common difference, that means the missing element will be between these two elements.
  • So if we found the mismatch at index ‘i’ then the value of the missing element as per the formula will be arr[0] + i*d (0th based indexing).
Time Complexity

O(N), where ‘N’ is the number of elements present in the array.

 

We traverse the array once to find the missing number from the given sequence. Hence, the overall Time Complexity is O(N).

Space Complexity

O(1).

 

Constant space is being used. Hence, the overall Space Complexity is O(1). 

Code Solution
(100% EXP penalty)
Missing number in Arithmetic progression
Full screen
Console