মান লেই একটি অ্যারে 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