मान लीजिए कि हमारे पास nums नामक तत्वों की एक सूची है, हमारे पास एक और मान k भी है। आइए अब हम एक संक्रिया पर विचार करें जहां हम अंकों में से एक अवयव का चयन करते हैं और उसे नकारते हैं। हम ठीक k संख्या में संक्रियाएँ कर सकते हैं। हमें अधिकतम परिणामी योग प्राप्त करना होगा जो उत्पन्न किया जा सकता है।
इसलिए, यदि इनपुट संख्या =[2, 1, -6, -2] k =3 की तरह है, तो आउटपुट 9 होगा, यदि हम -6 और -2 को अस्वीकार करते हैं और 1 को [2, -1, 6 मिलेगा , 2] और इसका योग 9 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
n :=अंकों का आकार
-
अगर n 0 के समान है, तो
-
वापसी 0
-
-
सूची संख्या क्रमित करें
-
idx के लिए 0 से n-1 की सीमा में, करें
-
अगर nums[idx] <0 और k> 0, तो
-
कश्मीर:=के - 1
-
nums[idx] :=-nums[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