কম্পিউটার

পাইথনে একটি বৃত্তাকার তালিকায় অ-সংলগ্ন উপাদানগুলির যোগফল খুঁজে বের করার জন্য প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যাকে nums বলা হয় যা একটি বৃত্তাকার তালিকার প্রতিনিধিত্ব করছে। আমাদের অ-সংলগ্ন সংখ্যার বৃহত্তম যোগফল খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[10, 3, 4, 8], তাহলে আউটপুট 14 হবে, যেমন আমরা 10 এবং 4 নিতে পারি। আমরা 10 এবং 8 নিতে পারি না যেহেতু তারা সংলগ্ন।

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

  • n :=সংখ্যার আকার
  • সংখ্যা 1 :=সংখ্যা[সূচী 0 থেকে n - 2]
  • সংখ্যা2 :=সংখ্যা[সূচী 1 থেকে শেষ]
  • একটি ফাংশন সংজ্ঞায়িত করুন f()। এর জন্য i
  • লাগবে
  • যদি i>=nums1 এর আকার , তারপর
    • রিটার্ন 0
  • সর্বোচ্চ সংখ্যা 1 [i] + f(i + 2) এবং f(i + 1) ফেরত দিন
  • একটি ফাংশন সংজ্ঞায়িত করুন g()। এটি j
  • লাগবে
  • যদি j>=সংখ্যার আকার 2 , তারপর
    • রিটার্ন 0
  • সর্বোচ্চ সংখ্যা 2[j] + g(j + 2) এবং g(j + 1) ফেরত দিন
  • প্রধান পদ্ধতি থেকে নিম্নলিখিতগুলি করুন -
  • সর্বোচ্চ f(0) এবং g(0) ফেরত দিন

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

উদাহরণ

class Solution:
   def solve(self, nums):
      n = len(nums)
      nums1 = nums[: n - 1]
      nums2 = nums[1:]
      def f(i):
         if i >= len(nums1):
            return 0
         return max(nums1[i] + f(i + 2), f(i + 1))
      def g(j):
         if j >= len(nums2):
            return 0
         return max(nums2[j] + g(j + 2), g(j + 1))
      return max(f(0), g(0))
ob = Solution()
nums = [10, 3, 4, 8]
print(ob.solve(nums))

ইনপুট

[10, 3, 4, 8]

আউটপুট

14

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

  2. পাইথনে একটি গাছের অ-সংলগ্ন নোডের সর্বাধিক যোগফল খুঁজে বের করার প্রোগ্রাম

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

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