Longest common subarray in the given two arrays | C # program to DP approach to above solution ; Function to find the maximum length of equal subarray ; Auxiliary [ , ] dp array ; Updating the [ , ] dp table in Bottom Up approach ; If A [ i ] is equal to B [ i ] then dp [ j , i ] = dp [ j + 1 , i + 1 ] + 1 ; Find maximum of all the values in [ , ] dp array to get the maximum length ; Update the length ; Return the maximum length ; Driver Code ; Function call to find maximum length of subarray
using System ; class GFG { static int FindMaxLength ( int [ ] A , int [ ] B , int n , int m ) { int [ , ] dp = new int [ n + 1 , m + 1 ] ; for ( int i = 0 ; i <= n ; i ++ ) for ( int j = 0 ; j <= m ; j ++ ) dp [ i , j ] = 0 ; for ( int i = n - 1 ; i >= 0 ; i -- ) { for ( int j = m - 1 ; j >= 0 ; j -- ) { if ( A [ i ] == B [ j ] ) dp [ j , i ] = dp [ j + 1 , i + 1 ] + 1 ; } } int maxm = 0 ; for ( int i = 0 ; i < n ; i ++ ) { for ( int j = 0 ; j < m ; j ++ ) { maxm = Math . Max ( maxm , dp [ i , j ] ) ; } } return maxm ; } public static void Main ( String [ ] args ) { int [ ] A = { 1 , 2 , 8 , 2 , 1 } ; int [ ] B = { 8 , 2 , 1 , 4 , 7 } ; int n = A . Length ; int m = B . Length ; Console . Write ( FindMaxLength ( A , B , n , m ) ) ; } }