Scan Memory for Three Consecutive Increasing Values

Code

#include <stdio.h>

int find_pattern(int *mem, int n) {
    // C?n ít nh?t 3 ph?n t?
    if (n < 3) {
        return -1;
    }
    
    // Duy?t qua m?ng b?ng con tr?
    for (int i = 0; i <= n - 3; i++) {
        // Ki?m tra 3 ph?n t? liên ti?p có tăng đúng 1 đơn v? không
        if (*(mem + i + 1) == *(mem + i) + 1 && 
            *(mem + i + 2) == *(mem + i + 1) + 1) {
            return i;  // Tr? v? v? trí b?t đ?u
        }
    }
    
    return -1;  // Không t?m th?y
}
int main(){
	int n;
	int 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;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

8 2 4 5 6 9 11 12 14

Expected Output

1