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

पायथन में आरोही क्रम में सबसे बड़ी रकम और वापसी रकम के साथ k सबलिस्ट खोजने का कार्यक्रम

मान लीजिए कि हमारे पास संख्याओं की एक सूची है, जिसे nums कहा जाता है, और दूसरा मान k, हमें सबसे बड़ी रकम के साथ k उप-सूचियों को ढूंढना है और रकम को गैर-घटते क्रम में वापस करना है।

इसलिए, यदि इनपुट संख्या =[2, 4, 5, -100, 12, 30, 6, -2, 6] k =3 की तरह है, तो आउटपुट [10, 11, 12] होगा, जैसा कि हम सबसे बड़ी रकम के साथ ये 3 सबलिस्ट हैं - [6, -2, 6], [2, 4, 5], [12]।

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

  • ps :=1 + आकार की एक सूची और 0 से भरें
  • प्रत्येक अनुक्रमणिका i और मान v अंक के लिए, करें
    • ps[i + 1] :=v + ps[i]
  • hp :=एक नई सूची
  • i के लिए 0 से लेकर ps के आकार तक के लिए, करें
    • j के लिए i + 1 से लेकर ps के आकार तक, करें
      • पीएस हीप में -(ps[j] - ps[i]) डालें
  • res :=सभी तत्वों को ps हीप में पॉप करें और उन्हें उलट दें
  • रिटर्न रेस

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

उदाहरण

from heapq import heappop, heappush
class Solution:
   def solve(self, nums, k):
      ps = [0 for _ in range(len(nums) + 1)]
      for i, v in enumerate(nums):
         ps[i + 1] = v + ps[i]
      hp = []
      for i in range(len(ps)):
         for j in range(i + 1, len(ps)):
            heappush(hp, -(ps[j] - ps[i]))
            return list(reversed([-heappop(hp)
      for _ in range(k)]))
ob = Solution()
nums = [2, 4, 5, -100, 12, -30, 6, -2, 6] k = 3
print(ob.solve(nums, k))

इनपुट

[2, 4, 5, -100, 12, -30, 6, -2, 6],3

आउटपुट

[10, 11, 12]

  1. पायथन में के और -के

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हमें सबसे बड़ी संख्या k ज्ञात करनी है जहां kand -k दोनों अंकों में मौजूद हैं (वे एक ही संख्या हो सकती हैं)। अगर ऐसा कोई तत्व नहीं है, तो -1 लौटाएं। इसलिए, अगर इनपुट [-5, 2, 9, -6, 5, -9] जैसा है, तो आउटपुट 9 होगा। इसे हल करने के ल

  1. पायथन में सबसे बड़ी संख्या

    मान लीजिए कि गैर-ऋणात्मक पूर्णांकों की एक सूची है, हमें उन्हें इस तरह व्यवस्थित करना होगा कि वे सबसे बड़ी संख्या बनाएं। तो अगर सरणी [10, 2] है, तो सबसे बड़ी संख्या 210 होगी। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - उन संख्याओं को व्यवस्थित करें जहां सबसे महत्वपूर्ण अंक उन्हें पहले स्थान से

  1. एक सूची में सबसे बड़ा, सबसे छोटा, दूसरा सबसे बड़ा और दूसरा सबसे छोटा खोजने के लिए पायथन कार्यक्रम?

    सरणी दी गई है, हमें अधिकतम, न्यूनतम, दूसरी सबसे बड़ी, दूसरी सबसे छोटी संख्या ज्ञात करनी है। एल्गोरिदम Step 1: input list element Step 2: we take a number and compare it with all other number present in the list. Step 3: get maximum, minimum, secondlargest, second smallest number. उदाहरण कोड # To fin