কম্পিউটার টিউটোরিয়াল

পাইথনে সর্বোচ্চ ইরেজার ভ্যালু বের করার প্রোগ্রাম


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

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

সমাধান পদ্ধতি

এই সমস্যাটি সমাধান করতে নিচের ধাপগুলো অনুসরণ করুন:

  • seen := একটি নতুন ম্যাপ
  • ans := sum := 0
  • l := 0
  • nums-এ থাকা প্রতিটি index r এবং value x-এর জন্য
    • যদি x seen-এ থাকে, তবে
      • index := seen[x]
      • যখন l <= index, तब
        • seen[nums[l]] ডিলিট করুন
        • sum := sum - nums[l]
        • l := l + 1
    • seen[x] := r
    • sum := sum + x
    • ans := max(ans, sum)
  • ans রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন আরও ভালো বোঝার জন্য:

 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. পাইথনে ২-এর ঘাতের মান বের করার প্রোগ্রাম

  3. পাইথনে kটি একই দৈর্ঘ্যের রিবন বানাতে সর্বোচ্চ দৈর্ঘ্য বের করার প্রোগ্রাম

  4. Python-এ সর্বোচ্চ বিল্ডিং হাইট বের করার প্রোগ্রাম