কম্পিউটার

পাইথনে K নেগেশানের পরে অ্যারের যোগফল সর্বাধিক করুন


ধরুন আমাদের কাছে পূর্ণসংখ্যাগুলির একটি অ্যারে রয়েছে, আমাদের নিম্নলিখিত উপায়ে অ্যারেটি সংশোধন করতে হবে -

আমরা একটি i বেছে নিতে পারি এবং A[i] কে -A[i] দিয়ে প্রতিস্থাপন করতে পারি, এবং আমরা এই প্রক্রিয়াটি K বার পুনরাবৃত্তি করব। এইভাবে পরিবর্তন করার পর আমাদেরকে অ্যারের সবচেয়ে বড় সম্ভাব্য যোগফল ফেরত দিতে হবে।

সুতরাং, যদি অ্যারে A =[4,2,3] এবং K =1 হয়, তাহলে আউটপুট হবে 5। তাই সূচক 1 বেছে নিন, অ্যারেটি হয়ে যাবে [4,-2,3]

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

  • অ্যারে সাজান A

  • আমি 0 থেকে A – 1 এর দৈর্ঘ্যের মধ্যে

    • যদি A[i] <0, তাহলে A[i] :=- A[i], এবং k হ্রাস করে 1

    • যদি k =0 হয়, তাহলে লুপ থেকে বিরতি দিন

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

    • sp :=A[0]

    • i এর জন্য :=1 থেকে A এর দৈর্ঘ্য - 1

      • যদি A[i]> 0 হয়, তাহলে sp :=ন্যূনতম sp এবং A[i>

    • A – (2*sp)

      -এর উপাদানগুলির যোগফল ফেরত দিন
  • অন্যথায়, A

    এর উপাদানগুলির যোগফল ফেরত দিন

উদাহরণ (পাইথন)

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

class Solution(object):
   def largestSumAfterKNegations(self, A, K):
      A.sort()
      for i in range(len(A)):
         if A[i] <0:
            A[i] = -A[i]
            K-=1
         if K==0:
            break
      if K%2:
         smallest_positive = A[0]
         for i in range(1,len(A)):
            if A[i]>=0:
               smallest_positive = min(smallest_positive,A[i]) return sum(A) - (2*smallest_positive)
            else:
               return sum(A)
ob1 = Solution()
print(ob1.largestSumAfterKNegations([3,-1,0,2],3))

ইনপুট

[3,-1,0,2]
3

আউটপুট

6

  1. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

  2. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম

  3. অ্যাকুমুলেট ফাংশন ব্যবহার করে পাইথনে উপসর্গ যোগফল অ্যারে

  4. অ্যাকুমুলেট ফাংশন ব্যবহার করে পাইথনে উপসর্গ যোগফল অ্যারে