ধরুন আমাদের n অনন্য মানের একটি অ্যারে আছে। এই অ্যারেটি সাজানো এবং ঘড়ির কাঁটার বিপরীতে ঘোরানো হয়েছে কিনা তা আমাদের পরীক্ষা করতে হবে। এখানে অন্তত একটি ঘূর্ণন প্রয়োজন তাই একটি সম্পূর্ণ সাজানো অ্যারে সাজানো এবং ঘোরানো হিসাবে বিবেচিত হয় না৷
সুতরাং, যদি ইনপুটটি nums =[4,5,6,8,1,3] এর মত হয়, তাহলে আউটপুটটি True হবে কারণ আমরা ঘড়ির কাঁটার দিকে দুইবার ঘোরাতে পারি তাহলে এটি [1, 3] এর মতো সাজানো হবে। 4, 5, 6, 8]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- min_element :=ন্যূনতম সংখ্যা
- min_index :=সংখ্যায় min_element এর সূচক
- fore_sorted :=সত্য
- আমি 1 থেকে min_index - 1 রেঞ্জের জন্য, কর
- যদি nums[i]
- fore_sorted :=মিথ্যা
- লুপ থেকে বেরিয়ে আসুন
- যদি nums[i]
- যদি nums[i]
- after_sorted :=মিথ্যা
- লুপ থেকে বেরিয়ে আসুন
- মিথ্যে ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def solve(nums): min_element = 999999 min_index = -1 min_element = min(nums) min_index = nums.index(min_element) before_sorted = True for i in range(1, min_index): if nums[i] < nums[i - 1]: before_sorted = False break after_sorted = True for i in range(min_index + 1, len(nums)): if nums[i] < nums[i - 1]: after_sorted = False break if before_sorted and after_sorted and nums[-1] < nums[0]: return True else: return False nums = [4,5,6,8,1,3] print(solve(nums))
ইনপুট
[4,5,6,8,1,3]
আউটপুট
True