मान लीजिए हमारे पास पूर्णांकों की एक सरणी A है; हमें जांचना होगा कि यह एक वैध पर्वत सरणी है या नहीं। हम जानते हैं कि A एक पर्वत सरणी है यदि और केवल यदि यह निम्न स्थितियों को संतुष्ट करती है - A का आकार >= 3
A में कुछ इंडेक्स i मौजूद है जैसे कि -
- A[0] < A[1] < ... A[i-1] < A[i]
- A[i] > A[i+1] > ... > A[A.length - 1]
तो, यदि इनपुट [0,3,2,1] जैसा है, तो आउटपुट True होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि A का आकार < 3, तो
- False लौटाएं
- i := 1
- जब i < A का आकार और A[i] > A[i-1], करें
- i := i + 1
- यदि i, 1 के समान है या i, A के आकार के समान है, तो
- False लौटाएं
- जब i < A का आकार और A[i] < A[i-1], करें
- i := i + 1
- i, A के आकार के समान होने पर true लौटाएं
बेहतर समझ के लिए निम्न कार्यान्वयन देखें -
उदाहरण
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]))
इनपुट
[0,3,2,1]
आउटपुट
True