#include <stdio.h>
int find_pattern(int *mem, int n) {
// Write your pointer-based logic here
int ret = -1;
int *mem_0 = mem;
int *mem_1 = mem + 1;
int *mem_2 = mem + 2;
for (int i = 0; i < n - 3; i++) {
if (1 == *mem_1 - *mem_0 && 1 == *mem_2 - *mem_1) {
ret = i;
break;
}
mem_0++;
mem_1++;
mem_2++;
}
return ret;
}
int main() {
int n, arr[100];
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int res = find_pattern(arr, n);
printf("%d", res);
return 0;
}my code that I tried at first
int find_pattern(int *mem, int n) {
// Write your pointer-based logic here
int ret = -1;
int cnt = 1;
for (int i = 0; i < n; i++, mem++) {
if (cnt == 3) {
ret = i - 3 + 1;
break;
}
if (*(mem + 1) - *mem == 1) {
cnt++;
}
else {
cnt = 1;
}
}
return ret;
}
Solution is better than my code
Input
8 2 4 5 6 9 11 12 14
Expected Output
1