If last index is reached , then return the highest ( positive ) and lowest ( negative ) values
if ( index + 1 == List . size ( ) ) { if ( lowest < 0 && highest >= 0 ) { return ( new ArrayList < Integer > ( Arrays . asList ( highest , lowest ) ) ) ; } else if ( lowest <= 0 && highest <= 0 ) { return ( new ArrayList < Integer > ( Arrays . asList ( Integer . MIN_VALUE , lowest ) ) ) ; } else if ( lowest >= 0 && highest >= 0 ) { return ( new ArrayList < Integer > ( Arrays . asList ( highest , Integer . MIN_VALUE ) ) ) ; } }