All of the provided implementations fail for `[2,3,1,2]`. Basically you want something like: _(Python-like pseudodode)_ count = 0 for i = 1 to length(arr)-1: if arr[i-1] >= arr[i]: count += 1 # Preceding number is greater than this one -- make sure # all numbers before the preceding are less than this one. for j = 0 to i-2: if arr[j] >= arr[i]: return false return count == 1