ধরুন আমাদের কাছে অনন্য উপাদান সহ nums নামে একটি অ্যারে আছে। এর একটি সাব-অ্যারে বিপরীত করার পরে অ্যারেটি সাজানো হবে কি না তা আমাদের পরীক্ষা করতে হবে। যদি অ্যারেটি ইতিমধ্যেই সাজানো থাকে, তাহলেও সত্য ফেরত দিন।
সুতরাং, যদি ইনপুটটি nums =[4,6,27,25,15,9,37,42] এর মত হয়, তাহলে আউটপুটটি True হবে কারণ আমরা যদি [9,15,25,27] রিভার্স করি, তাহলে অ্যারে সাজানো হবে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- n :=সংখ্যার আকার
- যদি অ্যারেতে শুধুমাত্র একটি উপাদান থাকে তাহলে True রিটার্ন করুন
- i :=1
- 1 থেকে n - 1 রেঞ্জের জন্য,
- করুন
- যদি nums[i - 1]
- যদি i n এর মত হয়, তাহলে true রিটার্ন করুন, অন্যথায় লুপ থেকে বেরিয়ে আসুন
- যদি nums[i - 1]
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ কোড
def solve(nums): n = len(nums) if n == 1: return True i = 1 for i in range(1, n): if nums[i - 1] < nums[i] : if i == n: return True else: break j = i while j < n and nums[j] < nums[j - 1]: if i > 1 and nums[j] < nums[i - 2]: return False j += 1 if j == n: return True k = j if nums[k] < nums[i - 1]: return False while k > 1 and k < n: if nums[k] < nums[k - 1]: return False k += 1 return True nums = [4,6,27,25,15,9,37,42] print(solve(nums))
ইনপুট
[4,6,27,25,15,9,37,42]
আউটপুট
True