- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

Suppose we have an array called nums holding n-1 arithmetic sequence terms. One element except the first or last element of nums was removed before. We have to find the removed number.

So, if the input is like nums = [5, 7, 11, 13], then the output will be 9 because, the items are following the formula 2i+5, so for i = 2 it will be 2*2 + 5 = 9 which is missing.

To solve this, we will follow these steps −

if size of nums is same as 2, then

return floor of (sum of all elements present in nums)/2

if nums[0] is same as nums[1], then/p>

return nums[0]

lower := nums[0]

upper := last element of nums

interval := floor of (upper - lower) / size of nums

pointer := floor of size of nums / 2

left := 0

right := size of nums - 1

while left is not same as right, do

if nums[pointer] is not same as nums[0] + interval * pointer, then

if nums[pointer - 1] is same as nums[0] + interval *(pointer - 1) , then

return nums[0] + interval * pointer

otherwise,

right := pointer

pointer :=floor of(left + right) / 2

otherwise,

if right - left is same as 1, then

pointer := right

otherwise,

left := pointer

pointer := floor of(left + right) / 2

Let us see the following implementation to get better understanding

def solve(nums): if len(nums) == 2: return sum(nums) // 2 if nums[0] == nums[1]: return nums[0] lower = nums[0] upper = nums[-1] interval = (upper - lower) // len(nums) pointer = len(nums) // 2 left = 0 right = len(nums) - 1 while left != right: if nums[pointer] != nums[0] + interval * pointer: if nums[pointer - 1] == nums[0] + interval * (pointer -1): return nums[0] + interval * pointer else: right = pointer pointer = (left + right) // 2 else: if right - left == 1: pointer = right else: left = pointer pointer = (left + right) // 2 nums = [5, 7, 11, 13] print(solve(nums))

[5, 7, 11, 13]

9

- Related Questions & Answers
- Program to find nth term in Look and Say Sequence in Python
- Program to check we can make arithmetic progression from sequence in Python
- Program to check subarrays can be rearranged from arithmetic sequence or not in Python
- Program to check how many queries finds valid arithmetic sequence in Python
- Program to find nth Fibonacci term in Python
- Program to find maximum k-repeating substring from sequence in Python
- Program to find number of ways we can select sequence from Ajob Sequence in Python
- Longest Arithmetic Sequence in C++
- Program to find nth term of a sequence which are divisible by a, b, c in Python
- Find nth term of the Dragon Curve Sequence in C++
- JavaScript code to find nth term of a series - Arithmetic Progression (AP)
- Program to find number of arithmetic subsequences from a list of numbers in Python?
- Program to find number of arithmetic sequences from a list of numbers in Python?
- C Program for N-th term of Arithmetic Progression series
- Program to find kth lexicographic sequence from 1 to n of size k Python

Advertisements