Your task is to find the first element of an array that is not consecutive.

E.g. If we have an array [1,2,3,4,6,7,8] then 1 then 2 then 3 then 4 are all consecutive but 6 is not, so that’s the first non-consecutive number.

If the whole array is consecutive then return None.

The array will always have at least 2 elements1 and all elements will be numbered. The numbers will also all be unique and in ascending order. The numbers could be positive or negative and the first non-consecutive could be either too!

Solution :

Take out the first number in the array, then continue to add one to that number, if one of the summation outcomes is not the same as the next number in the array then the program will return that next number or else the program will return None if no non-consecutive number has been found.

def first_non_consecutive(arr): seed = arr.pop(0) for num in arr: seed += 1 if num != seed: return num return None

Any thoughts about the above solution? Please comment below.

If you like any post on this website, please share on social media to help this site gets more readers!

If they’re consecutive you can just see if any given entry is equal to the first entry plus the index. For an arbitrary array the quickest (?) way would be by a binary search using this comparison.

As a generator:

`(x for x, y in zip(l, range(l[0], l[0]+len(l))) if x != y)`