কম্পিউটার

পাইথনে যেকোনো সাবয়ারের সর্বোচ্চ পরম যোগফল খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের nums নামক একটি অ্যারে আছে। আমাদের একটি সাবয়ারের পরম যোগফল খুঁজে বের করতে হবে [nums_l, nums_l+1, ..., nums_r-1, nums_r] হল |nums_l + nums_l+1 + ... + nums_r-1 + nums_r|। আমাদের সংখ্যার যেকোন সাবয়ারের সর্বোচ্চ পরম যোগফল খুঁজে বের করতে হবে (যে সাব্যারে সম্ভবত খালি হতে পারে)।

সুতরাং, যদি ইনপুটটি nums =[2,-4,-3,2,-6] এর মত হয়, তাহলে আউটপুট হবে 11 কারণ সাবয়ারে [2,-4,-3,2]-এর সর্বোচ্চ পরম সাবয়ারের যোগফল রয়েছে | 2 + (-4) + (-3) + 2| =11.

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

  • n:=সংখ্যার আকার

  • উত্তর:=0, তাপমাত্রা:=0

  • আমি 0 থেকে n - 1 রেঞ্জের জন্য, করুন

    • যদি temp <0, তারপর

      • তাপমাত্রা:=0

    • temp:=temp + nums[i]

    • ans:=সর্বাধিক উত্তর এবং |temp|

  • তাপমাত্রা:=0

  • আমি 0 থেকে n - 1 রেঞ্জের জন্য, করুন

    • যদি temp> 0 হয়, তাহলে

      • তাপমাত্রা:=0

    • temp:=temp + nums[i]

    • ans:=সর্বাধিক উত্তর এবং |temp|

  • উত্তর ফেরত দিন

উদাহরণ

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

def solve(nums):
   n=len(nums)
   ans=0
   temp=0

   for i in range(n):
      if (temp<0):
         temp=0
   temp=temp+nums[i]
   ans=max(ans,abs(temp))

   temp=0
   for i in range(n):
      if (temp>0):
         temp=0
      temp=temp+nums[i]
      ans=max(ans,abs(temp))

   return ans

nums = [2,-4,-3,2,-6]
print(solve(nums))

ইনপুট

[2,-4,-3,2,-6]

আউটপুট

11

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

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

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

  4. পাইথনে সর্বোচ্চ সংখ্যক বন্ধনীর ভারসাম্যপূর্ণ গোষ্ঠী খুঁজে বের করার প্রোগ্রাম