알고리즘 30 - Find the first non-consecutive number

tamagoyakii·2021년 10월 10일
0

알고리즘

목록 보기
30/89

Q.

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

By not consecutive we mean not exactly 1 larger than the previous element of the array.

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 a non consecutive number is found then return true and set the passed in pointer to the number found.

If the whole array is consecutive then return false.

The array will always have at least 2 elements1 and all elements will be numbers. 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!

A)

#include <stdbool.h>

bool firstNonConsecutive (const int arr[], const int length, int *first) {
  for (int i = 0; i + 1 < length; i++) {
    if (arr[i] + 1 != arr[i + 1]) {
      first[0] = arr[i + 1];
      return true;
    }
  }
  return false;
}

0개의 댓글