ধরুন আমাদের কাছে 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