কম্পিউটার

পাইথনে পরপর 3টি উপাদান থেকে কমপক্ষে একটি উপাদান নিয়ে ন্যূনতম যোগফলের অনুগামী খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যাকে nums বলা হয়, আমাদের প্রদত্ত তালিকা থেকে একটি ন্যূনতম যোগফল খুঁজে বের করতে হবে যাতে পরপর তিনটি সংখ্যার সমস্ত গ্রুপের জন্য কমপক্ষে একটি সংখ্যা নির্বাচন করা হয়। প্রদত্ত তালিকার দৈর্ঘ্য 3-এর কম হলে, একটি সংখ্যা এখনও নির্বাচন করা উচিত।

সুতরাং, ইনপুট যদি সংখ্যার মত হয় =[2, 3, 4, 5, 6, 7], তাহলে আউটপুট হবে 7, যেমন আমরা 2 এবং 5 নির্বাচন করতে পারি।

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

  • n :=সংখ্যার আকার
  • যদি n 0 এর মত হয়, তাহলে
    • রিটার্ন 0
  • যদি n 1 এর মত হয়, তাহলে
    • রিটার্ন সংখ্যা[0]
  • যদি n 2 এর মত হয়, তাহলে
    • নূন্যতম সংখ্যা [0] এবং সংখ্যাগুলি [1] ফেরত দিন।
  • টেবিল :=n আকারের একটি তালিকা এবং 0 দিয়ে পূরণ করুন
  • টেবিল[0] :=সংখ্যা[0]
  • টেবিল[1] :=সংখ্যা[1]
  • টেবিল[2] :=সংখ্যা[2]
  • 3 থেকে n রেঞ্জের জন্য, করুন
    • টেবিল[i] :=সংখ্যা[i] + সর্বনিম্ন টেবিল[i - 3], টেবিল[i - 2] এবং টেবিল[i - 1]
  • res :=সর্বনিম্ন টেবিল[n - 1], টেবিল[n - 2] এবং টেবিল[n - 3]
  • রিটার্ন রিটার্ন

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

উদাহরণ কোড

class Solution:
   def solve(self, nums):
      n = len(nums)
      if n == 0:
         return 0
      if n == 1:
         return nums[0]
      if n == 2:
         return min(nums[0], nums[1])
      table = [0] * n

      table[0] = nums[0]
      table[1] = nums[1]
      table[2] = nums[2]

      for i in range(3, n):
         table[i] = nums[i] + min(table[i - 3], table[i - 2], table[i - 1])

         res = min(table[n - 1], table[n - 2], table[n - 3])
      return res

ob = Solution()
nums = [2, 3, 4, 5, 6, 7]
print(ob.solve(nums))

ইনপুট

[2, 3, 4, 5, 6, 7]

আউটপুট

7

  1. পাইথনে সাব-ট্রির নোড মানের সমষ্টি থেকে ন্যূনতম মান বের করার প্রোগ্রাম

  2. পাইথনে একটি গাছের সমস্ত উপাদানের যোগফল খুঁজে বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম তালিকায় উপাদানের যোগফল খুঁজে বের করতে

  4. পাইথন প্রোগ্রাম একটি তালিকা থেকে ডুপ্লিকেট উপাদান অপসারণ?