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

पायथन में सूची को एक पूर्णांक में कम करने की न्यूनतम लागत खोजने का प्रोग्राम


मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है। हम किन्हीं दो संख्याओं को लेकर, उन्हें हटाकर, और उनके योग को अंत में जोड़कर nums की लंबाई कम कर सकते हैं। इस ऑपरेशन की लागत उन दो पूर्णांकों का योग है जिन्हें हमने हटाया। हमें nums को एक पूर्णांक में कम करने की न्यूनतम कुल लागत ढूंढनी है।

इसलिए, यदि इनपुट nums = [2, 3, 4, 5, 6] जैसा है, तो आउटपुट 45 होगा, क्योंकि हम 2 और 3 लेते हैं फिर हटाकर [4, 5, 6, 5] प्राप्त करते हैं, फिर हम 4 और 5 लेते हैं फिर हटाकर [6, 5, 9] प्राप्त करते हैं, फिर 6 और 5 लेते हैं, फिर उन्हें हटाते हैं और [9, 11] प्राप्त करते हैं, और अंत में 9 और 11 को हटाते हैं, हमें 19 मिलेगा। इसलिए योग 45 है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −

  • nums में मौजूद तत्वों का उपयोग करके एक हीप बनाएं
  • ans := 0
  • जब तक nums का आकार >= 2, करें
    • a := हीप nums का शीर्ष तत्व
    • b := हीप nums का शीर्ष तत्व
    • ans := ans + a + b
    • a+b को हीप nums में डालें
  • ans वापस करें

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें −

उदाहरण

class Solution:    def solve(self, nums):       import heapq       heapq.heapify(nums)       ans = 0       while len(nums) >= 2:          a = heapq.heappop(nums)          b = heapq.heappop(nums)          ans += a + b          heapq.heappush(nums, a + b)       return ans ob = Solution() nums = [2, 3, 4, 5, 6] print(ob.solve(nums))

इनपुट

[2, 3, 4, 5, 6]

आउटपुट

45

  1. पायथन में छड़ी काटने की न्यूनतम लागत ज्ञात करने का प्रोग्राम पायथन में छड़ी काटने की न्यूनतम लागत ज्ञात करने का प्रोग्राम

    मान लीजिए हमारे पास एक मान n और cuts नामक एक सरणी है। मान लीजिए n इकाई लंबाई की एक लकड़ी की छड़ी है। छड़ी 0 से n तक लेबल की गई है। यहां cuts[i] एक स्थिति दर्शाता है जहां हम काट सकते हैं। हमें कटौती क्रम में करनी चाहिए, लेकिन हम कटौती के क्रम को अपनी इच्छानुसार बदल सकते हैं। यहां एक कटौती की लागत का

  1. - Python में X को शून्य तक कम करने के लिए न्यूनतम ऑपरेशन खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक एक ऐरे है और एक मान x है। एक ऑपरेशन में, हम या तो ऐरे से बाएं सबसे तत्व या दाएं सबसे तत्व को हटा सकते हैं और उसका मान x से घटा सकते हैं। हमें x को ठीक 0 तक कम करने के लिए आवश्यक न्यूनतम ऑपरेशन की संख्या ढूंढनी है। यदि यह संभव नहीं है तो -1 वापस करें। उदाहरण के लिए, यद

  1. Python में सभी बिंदुओं को जोड़ने की न्यूनतम लागत खोजने का प्रोग्राम Python में सभी बिंदुओं को जोड़ने की न्यूनतम लागत खोजने का प्रोग्राम

    मान लीजिए हमारे पास points नामक एक ऐरे है जिसमें कुछ पॉइंट्स (x, y) के रूप में हैं। अब दो पॉइंट्स (xi, yi) और (xj, yj) को जोड़ने की लागत उनके बीच की मैनहट्टन दूरी है, सूत्र है |xi - xj| + |yi - yj|। हमें सभी पॉइंट्स को जोड़ने की न्यूनतम लागत ढूंढनी है। उदाहरण के लिए, यदि इनपुट है points = [(0,0),(