''' Given an array of integers arr, return true if and only if it is a valid mountain array. Recall that arr is a mountain array if and only if: arr.length >= 3 There exists some i with 0 < i < arr.length - 1 such that: arr[0] < arr[1] < ... < arr[i - 1] < arr[i] arr[i] > arr[i + 1] > ... > arr[arr.length - 1] ''' def valid_mountain_array(arr: list[int]) -> bool: last_number, mountain_up = arr[0], True for i, n in enumerate(arr[1:]): if n > last_number: if mountain_up == False: return False elif n < last_number: if i == 0: return False mountain_up = False else: return False last_number = n return not mountain_up if __name__ == "__main__": arr = [0,3,2,1] print(valid_mountain_array(arr))