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