#Java 10, 94 bytes
Java 10, 94 bytes
a->{var r=0>1;for(int j=a.length-1,i;j-->0;)for(i=0;i<j;)r|=a[j]>a[i]&a[j+1]<a[i++];return!r;}
Port of @tsh' JavaScript answer.
Explanation:
a->{ // Method with integer-array parameter and boolean return-type
var r=0>1; // Result-boolean, starting at false
for(int j=a.length-1,i;j-->0;)
// Loop `j` in the range (length-1, 0]:
for(i=0;i<j;) // Inner loop `i` in the range [0, j):
r|= // If any are true, change the result to true as well:
a[j]>a[i] // The `j`'th item is larger than the `i`'th item
&a[j+1]<a[i++]; // And the `j+1`'th item is smaller than the `i`'th item
return!r;} // After the nested loop, check if the boolean is still false