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

পাইথনে সর্বোচ্চ k নেগেট অপারেশন দিয়ে অ্যারের সর্বোচ্চ যোগফল বের করার প্রোগ্রাম

একটি লিস্ট nums এবং মান k দেওয়া আছে। এক অপারেশনে যেকোনো এলিমেন্ট নেগেট (চিহ্ন পরিবর্তন) করা যায়। ঠিক k অপারেশন দিয়ে সর্বোচ্চ সম্ভাব্য যোগফল বের করুন।

উদাহরণ

nums = [2, 1, -6, -2], k = 3 → আউটপুট: 9

-6 এবং -2 নেগেট → [2, -1, 6, 2] → যোগফল = ৯

এলগরিদম

  1. nums সর্ট করুন।
  2. নেগেটিভ সংখ্যাগুলো k সমाप्त হওয়া পর্যন্ত পজিটিভ করুন।
  3. যদি k অড্ড (odd) থাকে: সবচেয়ে ছোট এলিমেন্ট আবার নেগেট করুন (যোগফল থেকে 2*min বিয়োগ)।
  4. সামগ্রিক যোগফল রিটার্ন করুন।

পাইথন কোড

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))  # আউটপুট: 9

ইনপুট / আউটপুট

[2, 1, -6, -2], 3
9
  1. পাইথনে বড় কনক্যাটেনেটেড লিস্ট থেকে সর্বোচ্চ সাবলিস্ট যোগফল বের করার প্রোগ্রাম

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

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

  4. পাইথনে N কে 1 এ রিডিউস করার সর্বোচ্চ অপারেশন সংখ্যা বের করা