public class Runs
{
    public static boolean runLengthIncreasing(int[] arr)
    {
        int almostRunLength = 0;
        int almostMaxRunLength = 0;
        
        for(int i = 1; i < arr.length; i++)
        {
            if(arr[i - 1] == arr[i])
            {
                almostRunLength++;
                
                // We already know this is a real run.
                
                if(i == arr.length - 1 || arr[i + 1] != arr[i])
                {
                    if(almostRunLength > almostMaxRunLength)
                        almostMaxRunLength = almostRunLength;
                    else
                        return false;
                }
            }
            else
                almostRunLength = 0;
        }
        
        return true;
    }
}
