কম্পিউটার

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


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

সুতরাং, ইনপুটটি যদি nums =[2, 1, -6, -2] k =3 এর মত হয়, তাহলে আউটপুট হবে 9, যদি আমরা -6 এবং -2 কে অস্বীকার করি এবং 1 পাবে [2, -1, 6] , 2] এবং এর যোগফল 9।

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

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

  • যদি n 0 এর সমান হয়, তাহলে

    • রিটার্ন 0

  • তালিকার সংখ্যাগুলি সাজান

  • 0 থেকে n - 1 রেঞ্জের idx-এর জন্য, করুন

    • যদি nums[idx] <0 এবং k> 0 হয়, তাহলে

      • k :=k - 1

      • nums[idx] :=-সংখ্যা[idx]

  • যদি k বিজোড় হয়, তাহলে

    • রিটার্ন (সংখ্যায় উপস্থিত সমস্ত উপাদানের যোগফল) - (2 * সর্বনিম্ন সংখ্যা)

  • সংখ্যায় উপস্থিত সমস্ত উপাদানের যোগফল ফেরত দিন

উদাহরণ

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

def solve(nums, k):
   n = len(nums)
   if n == 0:
      return 0

   nums.sort()
   for idx in range(n):
      if nums[idx] < 0 and k > 0:
         k -= 1
         nums[idx] *= -1

   if k & 1 == 1:
      return sum(nums) - 2 * min(nums)

   return sum(nums)

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

ইনপুট

[2, 1, -6, -2], 3

আউটপুট

9

  1. পাইথনে বৃহত্তম K সাবলিস্টের যোগফল খুঁজে বের করার জন্য প্রোগ্রাম

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

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

  4. পাইথনে N থেকে 1 কমাতে সর্বাধিক অপারেশন খুঁজুন