কম্পিউটার

পাইথনে ইতিবাচক পণ্য সহ সর্বাধিক দৈর্ঘ্যের সাবয়ারের সন্ধান করার জন্য প্রোগ্রাম


ধরুন আমাদের nums নামক একটি অ্যারে আছে, আমাদের একটি সাবয়ারের সর্বোচ্চ দৈর্ঘ্য খুঁজে বের করতে হবে যেখানে এর সমস্ত উপাদানের গুণফল ধনাত্মক। আমাদের ইতিবাচক পণ্য সহ একটি সাবয়ারের সর্বাধিক দৈর্ঘ্য খুঁজে বের করতে হবে৷

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[2,-2,-4,5,-3], তাহলে আউটপুট হবে 4 কারণ প্রথম চারটি উপাদান একটি সাবয়ারে তৈরি করছে যার গুণফল ধনাত্মক৷

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

  • একটি ফাংশন util() সংজ্ঞায়িত করুন। এটি s, e
  • লাগবে
  • neg :=0
  • ns :=-1, ne :=-1
  • এর জন্য i s থেকে e, do
    • যদি nums[i] <0, তারপর
      • neg :=neg + 1
      • যদি ns -1 এর মত হয়, তাহলে
        • ns :=i
      • ne :=i
  • যদি neg জোড় হয়, তাহলে
    • ই-এস+1 ফেরত দিন
  • অন্যথায়,
    • সর্বোচ্চ e-ns এবং ne-s ফেরত দিন
  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -
  • উত্তর :=0
  • s :=-1, e :=-1
  • আমি 0 থেকে সংখ্যার আকারের মধ্যে,
      করুন
    • যদি nums[i] 0 এর মত না হয় এবং s -1 এর মত হয়, তাহলে
      • s :=i
    • অন্যথায় যখন সংখ্যা[i] 0 এর সমান এবং s -1 এর মতো নয়, তখন
      • e :=i-1
      • উত্তর :=সর্বাধিক উত্তর এবং util(s, e)
      • s :=-1, e :=-1
  • যদি s -1 এর মত না হয় এবং e -1 এর মত হয়, তাহলে
    • e :=সংখ্যা -1 এর আকার
    • উত্তর :=সর্বাধিক উত্তর এবং util(s, e)
  • উত্তর ফেরত দিন

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

উদাহরণ

def util(s, e):
   neg = 0
   ns, ne = -1, -1
   for i in range(s, e+1):
      if nums[i]<0:
         neg += 1
         if ns == -1:
            ns = i
         ne = i

   if neg == 0 or neg %2 == 0:
      return e-s+1
   else:
      return max(e-ns, ne-s)

def solve(nums):
   ans = 0
   s, e = -1, -1

   for i in range(len(nums)):
      if nums[i]!=0 and s == -1:
         s = i
      elif nums[i]==0 and s != -1:
         e = i-1
         ans = max(ans, util(s, e))
         s = -1
         e = -1

   if s!= -1 and e == -1:
      e = len(nums)-1
      ans = max(ans, util(s, e))
      return ans

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

ইনপুট

[2,-2,-4,5,-3]

আউটপুট

4

  1. পাইথন ব্যবহার করে সর্বাধিক সম্ভাব্যতার সাথে পথ খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে ধারাবাহিক সাধারণ অক্ষর সহ সাবস্ট্রিংয়ের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রামে সর্বোচ্চ গুণফলের সাথে N-এর চারটি গুণনীয়ক এবং N-এর সমান যোগফল নির্ণয় করুন - সেট-2

  4. পাইথনে সর্বাধিক পণ্য সাবারে