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

पायथन में न्यूनतम ढेर

यहां हम देखेंगे कि एक स्टैक कैसे बनाया जाता है, जो निरंतर समय में पुश, पॉप, टॉप और न्यूनतम तत्व को पुनः प्राप्त कर सकता है। तो फ़ंक्शन पुश (x), पॉप (), शीर्ष () और getMin ()

होंगे

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

  • न्यूनतम तत्व द्वारा स्टैक को इनफिनिटी के रूप में प्रारंभ करें
  • पुश ऑपरेशन के लिए पुश(x)
    • यदि x <मिनट है, तो न्यूनतम अपडेट करें:=x,
    • x को स्टैक में पुश करें
  • पॉप ऑपरेशन के लिए पॉप ()
    • t:=शीर्ष तत्व
    • टी को स्टैक से हटाएं
    • यदि टी न्यूनतम है, तो न्यूनतम:=स्टैक का शीर्ष तत्व
  • शीर्ष ऑपरेशन के लिए शीर्ष()
    • बस शीर्ष तत्व लौटाएं
  • गेटमिन ऑपरेशन के लिए getMin()
    • न्यूनतम तत्व लौटाएं

उदाहरण

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

class MinStack(object):
   min=float('inf')
   def __init__(self):
      self.min=float('inf')
      self.stack = []
   def push(self, x):
      if x<=self.min:
         self.stack.append(self.min)
         self.min = x
      self.stack.append(x)
   def pop(self):
      t = self.stack[-1]
      self.stack.pop()
      if self.min == t:
         self.min = self.stack[-1]
         self.stack.pop()
   def top(self):
      return self.stack[-1]
   def getMin(self):
      return self.min
m = MinStack()
m.push(-2)
m.push(0)
m.push(-3)
print(m.getMin())
m.pop()
print(m.top())
print(m.getMin())

इनपुट

m = MinStack()
m.push(-2)
m.push(0)
m.push(-3)
print(m.getMin())
m.pop()
print(m.top())
print(m.getMin())

आउटपुट

-3
0
-2

  1. पायथन में वर्षा जल को फंसाना

    मान लीजिए कि हमारे पास n गैर-ऋणात्मक पूर्णांकों की एक सरणी है। ये एक ऊंचाई के नक्शे का प्रतिनिधित्व कर रहे हैं जहां प्रत्येक बार की चौड़ाई 1 है, हमें गणना करनी होगी कि बारिश के बाद यह कितना पानी फंसा सकता है। तो नक्शा इस तरह होगा - यहां हम देख सकते हैं कि 6 नीले बॉक्स हैं, इसलिए आउटपुट 6 होगा। इ

  1. टिंकर पायथन में बंधनेवाला फलक

    टिंकर पाइथन की जीयूआई बिल्डिंग लाइब्रेरी है। इस लेख में हम देखेंगे कि हम एक बंधनेवाला फलक कैसे बना सकते हैं। वे तब उपयोगी होते हैं जब हमारे पास जीयूआई कैनवास पर प्रदर्शित होने के लिए कुछ बड़ी मात्रा में डेटा होता है लेकिन हम हमेशा प्रदर्शित नहीं होना चाहते हैं। इसे बंधनेवाला बनाया गया है ताकि जरूरत

  1. पायथन में विरासत

    इस लेख में, हम पायथन 3.x में इनहेरिटेंस और एक्सटेंडिंग क्लासेस सीखेंगे। या पहले। वंशानुक्रम वास्तविक दुनिया के संबंधों का अच्छी तरह से प्रतिनिधित्व करता है, पुन:प्रयोज्य प्रदान करता है और पारगमन का समर्थन करता है। यह तेजी से विकास समय, आसान रखरखाव और विस्तार में आसान प्रदान करता है। वंशानुक्रम को