Valid Mountain Array in Python


Suppose we have an array A of integers; we have to check whether it is a valid mountain array or not. We know that A is a mountain array if and only if it satisfies the following situations − size of A >= 3

There exists some index i in A such that −

  • A[0] < A[1] < ... A[i-1] < A[i]
  • A[i] > A[i+1] > ... > A[A.length - 1]

So, if the input is like [0,3,2,1], then the output will be True.

To solve this, we will follow these steps −

  • if size of A < 3, then
    • return False
  • i := 1
  • while i < size of A and A[i] > A[i-1], do
    • i := i + 1
  • if i is same as 1 or i is same as size of A , then
    • return False
  • while i < size of A and A[i] < A[i-1], do
    • i := i + 1
  • return true when i is same as size of A

Let us see the following implementation to get better understanding −

Example

 Live Demo

class Solution:
   def validMountainArray(self, A):
      if(len(A)<3):
         return False
         i = 1
      while(i<len(A) and A[i]>A[i-1]):
         i+=1
      if(i==1 or i==len(A)):
         return False
      while(i<len(A) and A[i]<A[i-1]):
         i+=1
      return i==len(A)
ob = Solution()
print(ob.validMountainArray([0,3,2,1]))

Input

[0,3,2,1]

Output

True

Updated on: 06-Jul-2020

694 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements