কম্পিউটার

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


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যার নাম nums এবং আরেকটি মান k। আমাদেরকে মুছে ফেলার উপাদানগুলির সর্বাধিক যোগফল খুঁজে বের করতে হবে, প্রদত্ত যে আমাদের ঠিক k বার পপ করতে হবে, যেখানে প্রতিটি পপ বাম বা ডান প্রান্ত থেকে হতে পারে।

সুতরাং, যদি ইনপুটটি nums =[2, 4, 5, 3, 1] k =2 এর মত হয়, তাহলে আউটপুট হবে 6, যেমন আমরা 2 এবং 4 মুছে ফেলতে পারি।

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

  • উইন্ডো :=সূচক 0 থেকে k - 1 পর্যন্ত সমস্ত সংখ্যার যোগফল
  • উত্তর :=উইন্ডো
  • 1 থেকে k রেঞ্জের জন্য,
      করুন
    • উইন্ডো :=window - nums[k - i]
    • উইন্ডো :=window + nums[-i]
    • উত্তর :=সর্বাধিক উত্তর এবং উইন্ডো
  • উত্তর ফেরত দিন

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

উদাহরণ

class Solution:
   def solve(self, nums, k):
      window = sum(nums[:k])
      ans = window
      for i in range(1, k + 1):
         window -= nums[k - i]
         window += nums[-i]
         ans = max(ans, window)
      return ans
ob = Solution()
nums = [2, 4, 5, 3, 1]
k = 2
print(ob.solve(nums, k))

ইনপুট

[2, 4, 5, 3, 1], 2

আউটপুট

6

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

  2. পাইথনে প্রথম n বিজোড় সংখ্যার যোগফল বের করার প্রোগ্রাম

  3. পাইথনে 1 থেকে N পর্যন্ত সমস্ত অনুপস্থিত সংখ্যা খুঁজে বের করার প্রোগ্রাম

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