Divide array into its subarray
if ( l . size ( ) == 1 ) return l ; int m = l . size ( ) / 2 ; ArrayList < Integer > temp1 = new ArrayList < > ( l . subList ( 0 , m ) ) ; ArrayList < Integer > temp2 = new ArrayList < > ( l . subList ( m , l . size ( ) ) ) ;