ধরুন আমাদের কাছে সংখ্যার একটি ক্রমবিহীন বিন্যাস রয়েছে যাকে nums বলা হয় এবং সমস্ত উপাদান 0 থেকে n-1 এর মধ্যে রয়েছে। আমরা যতবার প্রয়োজন ততবার সংলগ্ন উপাদানগুলিকে সংখ্যায় অদলবদল করতে পারি কিন্তু শুধুমাত্র যখন এই উপাদানগুলির মধ্যে পরম পার্থক্য 1 হয়। আমাদের যাচাই করতে হবে আমরা সংখ্যাগুলি সাজাতে পারি কিনা।
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[1, 0, 3, 2, 5, 4], তাহলে আউটপুটটি True হবে কারণ আমরা এই জোড়াগুলি [(1, 0), (3, 2), (5) অদলবদল করতে পারি। , 4)] সাজাতে [0, 1, 2, 3, 4, 5]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- আমি 0 থেকে সংখ্যার আকার - 2 এর মধ্যে, কর
- যদি nums[i]> nums[i+1] হয়, তারপর
- যদি nums[i] - nums[i+1] 1 এর মত হয়, তাহলে
- এক্সচেঞ্জ সংখ্যা[i] এবং সংখ্যা[i+1]
- অন্যথায়,
- মিথ্যে ফেরত দিন
- যদি nums[i] - nums[i+1] 1 এর মত হয়, তাহলে
- যদি nums[i]> nums[i+1] হয়, তারপর
- সত্য ফেরান
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(nums): for i in range(len(nums) - 1): if nums[i] > nums[i+1]: if nums[i] - nums[i+1] == 1: nums[i], nums[i+1] = nums[i+1], nums[i] else: return False return True nums = [1, 0, 3, 2, 5, 4] print(solve(nums))
ইনপুট
[1, 0, 3, 2, 5, 4]
আউটপুট
True