How to find longest common subarray in a given two arrays with C

1 Answer

0 votes
#include <stdio.h>

int LengthOfRepeatedSubarray(int array1[], int array2[], int size1, int size2) {
    int length = 0, maxlength = 0;

    for (int i = 0; i < size1; i++) {
        int k = i;
        for (int j = 0; j < size2; j++) {
            if (array1[k] == array2[j]) {
                length++;
                k++;
            }
            else {
                if (length > maxlength) {
                    maxlength = length;
                }
                length = 0;
                k--;
            }
        }
    }

    return maxlength;
}
int main()
{
    int array1[] = { 1, 2, 3, 4, 7, 6, 9, 0, 5 };
    int array2[] = { 4, 4, 7, 6, 9, 2, 8, 0, 1 };

    int size1 = sizeof(array1) / sizeof(array1[0]);
    int size2 = sizeof(array2) / sizeof(array2[0]);

    printf("%d", LengthOfRepeatedSubarray(array1, array2, size1, size2));

    return 0;
}




/*
run:

4

*/

 



answered Oct 9, 2022 by avibootz
...