কম্পিউটার

পাইথনে সর্বাধিক মুছে ফেলার মান খুঁজে পেতে প্রোগ্রাম


ধরুন আমাদের কাছে nums নামে একটি অ্যারে আছে (শুধুমাত্র ইতিবাচক মান সহ) এবং আমরা অনন্য উপাদান ধারণকারী একটি সাবয়ারে মুছে ফেলতে চাই। আমরা স্কোর পাব যা সাবারে উপাদানগুলির সমষ্টি। ঠিক একটি সাবয়ারে মুছে ফেলার মাধ্যমে আমাদের সর্বোচ্চ স্কোর খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[6,3,2,3,6,3,2,3,6], তাহলে আউটপুট হবে 11, কারণ এখানে সর্বোত্তম সাবয়ারে হয় [6,3,2] বা [2,3,6], তাই যোগফল হল 11।

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

  • দেখা হয়েছে :=একটি নতুন মানচিত্র
  • উত্তর :=যোগফল :=0
  • l :=0
  • প্রতিটি সূচক r এবং মান x সংখ্যার জন্য, করুন
    • যদি x দেখা যায়, তাহলে
      • সূচী :=দেখা[x]
      • যখন l <=index, do
        • দেখা [সংখ্যা[l]] সরান
        • সমষ্টি :=যোগফল - সংখ্যা[l]
        • l :=l + 1
    • দেখা হয়েছে[x] :=r
    • সমষ্টি :=যোগফল + x
    • উত্তর :=সর্বাধিক উত্তর এবং যোগফল
  • উত্তর ফেরত দিন

উদাহরণ

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

def solve(nums):
   seen = dict()
   ans = sum = 0
   l = 0
   for r, x in enumerate(nums):
      if x in seen:
         index = seen[x]
         while l <= index:
            del seen[nums[l]]
            sum -= nums[l]
            l += 1

      seen[x] = r
      sum += x
      ans = max(ans, sum)
   return ans

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

ইনপুট

[6,3,2,3,6,3,2,3,6]

আউটপুট

11

  1. পাইথনে একটি ম্যাট্রিক্সে সর্বাধিক মান ধারণকারী কোষগুলি খুঁজে বের করার জন্য প্রোগ্রাম

  2. পাইথনে 2 এর পাওয়ারের মান বের করার প্রোগ্রাম

  3. পাইথনে একই দৈর্ঘ্যের k ফিতার সর্বাধিক দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে সর্বোচ্চ বিল্ডিং উচ্চতা খুঁজে বের করার প্রোগ্রাম