ধরুন আমাদের কাছে সংখ্যার একটি অ্যারে আছে যাকে বলা হয় সংখ্যা, যেখানে সমস্ত উপাদান অনন্য। সংখ্যাগুলি প্রায় সাজানো হয়েছে কিনা তা আমাদের পরীক্ষা করতে হবে। যেমনটি আমরা জানি যে একটি অ্যারে প্রায় সাজানো হয় যখন এর যেকোন উপাদানটি সাজানো অ্যারেতে তার আসল অবস্থান থেকে সর্বোচ্চ 1 দূরত্বে ঘটতে পারে।
সুতরাং, যদি ইনপুটটি nums =[10, 30, 20, 40] এর মতো হয়, তাহলে আউটপুটটি True হবে কারণ 10 তার আসল জায়গায় স্থাপন করা হয়েছে এবং অন্যান্য সমস্ত উপাদান তাদের প্রকৃত অবস্থান থেকে সর্বাধিক এক জায়গায় রয়েছে।পি>
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- i :=0
- যখন i <সংখ্যার আকার - 1, do
- যদি nums[i]> nums[i + 1], তারপর
- সংখ্যা অদলবদল করুন [i] এবং সংখ্যাগুলি[i + 1]
- i :=i + 1
- i :=i + 1
- যদি nums[i]> nums[i + 1], তারপর
- আমি 0 থেকে সংখ্যার আকার - 1 এর রেঞ্জের জন্য, কর
- যদি nums[i]> nums[i + 1], তারপর
- মিথ্যে ফেরত দিন
- যদি nums[i]> nums[i + 1], তারপর
- সত্য ফেরান
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(nums): i = 0 while i < len(nums) - 1: if nums[i] > nums[i + 1]: nums[i], nums[i + 1] = nums[i + 1], nums[i] i += 1 i += 1 for i in range(len(nums) - 1): if nums[i] > nums[i + 1]: return False return True nums = [10, 30, 20, 40] print(solve(nums))
ইনপুট
[10, 30, 20, 40]
আউটপুট
True