Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में अधिकतम k नेगेट ऑपरेशन करके अधिकतम योग ढूंढना


मान लीजिए हमारे पास nums नामक तत्वों की एक लिस्ट है और हमारे पास एक और मान k है। अब एक ऑपरेशन पर विचार करें जहां हम nums से एक तत्व चुनते हैं और उसे नेगेट करते हैं। हम ठीक k संख्या में ऑपरेशन कर सकते हैं। हमें अधिकतम परिणामी योग ढूंढना है जो उत्पन्न किया जा सकता है।

उदाहरण के लिए, यदि इनपुट है nums = [2, 1, -6, -2], k = 3, तो आउटपुट होगा 9, यदि हम -6 और -2 और 1 को नेगेट करते हैं तो हमें [2, -1, 6, 2] मिलेगा और इसका योग 9 है।

समाधान दृष्टिकोण

लालची दृष्टिकोण: सबसे पहले सभी नेगेटिव संख्याओं को पॉजिटिव में बदलें (सबसे छोटी नेगेटिव से शुरू करके)। यदि ऑपरेशन बचते हैं और k विषम है, तो सबसे छोटे निरपेक्ष मान वाले तत्व को नेगेट करें।

  • nums को सॉर्ट करें।
  • नेगेटिव संख्याओं को पॉजिटिव में बदलें जब तक k > 0।
  • यदि k विषम है, तो कुल योग से 2 * min(nums) घटाएं।
  • अन्यथा, कुल योग लौटाएं।

पायथन कार्यान्वयन

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

  1. - पायथन में सन्निकट सबएरे के अधिकतम गुणनफल को खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक एक सरणी है, हमें एक सन्निकट सबएरे के तत्वों का गुणनफल ढूंढना है जिसमें सबसे बड़ा गुणनफल हो (कम से कम एक संख्या हो)। इसलिए यदि सरणी [1,9,2,0,2,5] है, तो आउटपुट 18 होगा, क्योंकि सन्निकट सबएरे [1,9,2] का अधिकतम गुणनफल है।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे &minu

  1. - पायथन में अधिकतम योग वाली सन्निकट सबलिस्ट का योग खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक सरणी A है। हमें वह सन्निकट सबलिस्ट ढूंढनी है जिसका अधिकतम योग हो, और उसका योग भी लौटाना है। उदाहरण के लिए, यदि A = [-2,1,-3,4,-1,2,1,-5,4], तो योग 6 होगा। और सबअरे [4, -1, 2, 1] होगा। इसे हल करने के लिए हम डायनामिक प्रोग्रामिंग दृष्टिकोण का उपयोग करेंगे। dp सरणी A के आकार की

  1. - Python में N को 1 तक कम करने के लिए अधिकतम ऑपरेशन ढूंढना

    मान लीजिए हमारे पास दो संख्याएं P और Q हैं और वे एक संख्या N = (P!/Q!) बनाते हैं। हमें N को 1 तक कम करना है अधिकतम संभव ऑपरेशन करके। प्रत्येक ऑपरेशन में, कोई N को N/X से बदल सकता है जब N, X से विभाज्य हो। हम अधिकतम ऑपरेशन की संख्या वापस करेंगे जो संभव हो सकती है। तो, यदि इनपुट A = 7, B = 4 की तरह है