একটি লিস্ট nums এবং মান k দেওয়া আছে। এক অপারেশনে যেকোনো এলিমেন্ট নেগেট (চিহ্ন পরিবর্তন) করা যায়। ঠিক k অপারেশন দিয়ে সর্বোচ্চ সম্ভাব্য যোগফল বের করুন।
উদাহরণ
nums = [2, 1, -6, -2], k = 3 → আউটপুট: 9
-6 এবং -2 নেগেট → [2, -1, 6, 2] → যোগফল = ৯
এলগরিদম
numsসর্ট করুন।- নেগেটিভ সংখ্যাগুলো
kসমाप्त হওয়া পর্যন্ত পজিটিভ করুন। - যদি
kঅড্ড (odd) থাকে: সবচেয়ে ছোট এলিমেন্ট আবার নেগেট করুন (যোগফল থেকে2*minবিয়োগ)। - সামগ্রিক যোগফল রিটার্ন করুন।
পাইথন কোড
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