কম্পিউটার

হিপ চেক করার প্রোগ্রামটি পাইথনে সর্বোচ্চ হিপ তৈরি করছে নাকি নয়


ধরুন আমাদের কাছে একটি তালিকা রয়েছে যা একটি গাদা গাছের প্রতিনিধিত্ব করে। আমরা জানি হিপ একটি সম্পূর্ণ বাইনারি গাছ। আমাদের উপাদানগুলি সর্বাধিক গাদা তৈরি করছে কিনা তা পরীক্ষা করতে হবে। আমরা সর্বাধিক হিপের জন্য জানি প্রতিটি উপাদান তার উভয় সন্তানের চেয়ে বড়।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[8, 6, 4, 2, 0, 3], তাহলে আউটপুটটি True হবে কারণ, সমস্ত উপাদান তাদের সন্তানদের থেকে বড়৷

হিপ চেক করার প্রোগ্রামটি পাইথনে সর্বোচ্চ হিপ তৈরি করছে নাকি নয়

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • n :=সংখ্যার আকার
  • আমি 0 থেকে n - 1 রেঞ্জের জন্য, কর
    • m :=i * 2
    • সংখ্যা :=সংখ্যা[i]
    • যদি m + 1
    • যদি num
    • মিথ্যে ফেরত দিন
  • যদি m + 2
  • যদি num
  • মিথ্যে ফেরত দিন
  • সত্য ফেরান
  • উদাহরণ

    আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    def solve(nums):
       n = len(nums)
       for i in range(n):
          m = i * 2
          num = nums[i]
          if m + 1 < n:
             if num < nums[m + 1]:
                return False
          if m + 2 < n:
             if num < nums[m + 2]:
                return False
       return True
    
    nums = [8, 6, 4, 2, 0, 3]
    print(solve(nums))

    ইনপুট

    [8, 6, 4, 2, 0, 3]

    আউটপুট

    True

    1. পয়েন্ট চেক করার প্রোগ্রাম অবতল বহুভুজ গঠন করছে নাকি পাইথনে নয়

    2. পয়েন্ট চেক করার প্রোগ্রামটি পাইথনে উত্তল হুল তৈরি করছে বা না

    3. একটি প্রদত্ত স্ট্রিং কীওয়ার্ড কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

    4. পাইথন প্রোগ্রাম একটি তালিকা খালি কি না পরীক্ষা করতে?