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

पायथन में हम कितना कुल वर्षा जल पकड़ सकते हैं यह खोजने का प्रोग्राम


मान लीजिए हमारे पास n गैर-ऋणात्मक पूर्णांकों की एक सरणी है। ये एक ऊंचाई को दर्शा रहे हैं जहां प्रत्येक बार की चौड़ाई 1 है, हमें गणना करनी है कि बारिश के बाद यह कितना पानी पकड़ सकता है। तो मानचित्र इस तरह होगा −

पायथन में हम कितना कुल वर्षा जल पकड़ सकते हैं यह खोजने का प्रोग्राम

यहां हम 8 नीले बॉक्स देख सकते हैं, इसलिए आउटपुट 8 होगा।

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

  • एक स्टैक st, water := 0 और i := 0 परिभाषित करें
  • जब तक i < height का आकार
    • यदि स्टैक खाली है या height[स्टैक शीर्ष] >= height[i], तो i को स्टैक में पुश करें, i को 1 से बढ़ाएं
    • अन्यथा
      • x := स्टैक शीर्ष तत्व, स्टैक से शीर्ष हटाएं
      • यदि स्टैक खाली नहीं है, तो
        • temp := height[स्टैक शीर्ष तत्व] और height[i] का न्यूनतम
        • dest := i - स्टैक शीर्ष तत्व - 1
        • water := water + dist * (temp - height[x])
  • water वापस करें

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

उदाहरण

class Solution(object):    def trap(self, height):       stack = []       water = 0       i=0       while i<len(height):          if len(stack) == 0 or height[stack[-1]]>=height[i]:             stack.append(i)             i+=1          else:             x = stack[-1]             stack.pop()             if len(stack) != 0:                temp = min(height[stack[-1]],height[i])                dist = i - stack[-1]-1                water += dist*(temp - height[x])       return water ob = Solution() print(ob.trap([2,5,2,0,5,8,8]))

इनपुट

[2,5,2,0,5,8,8]

आउटपुट

8

  1. Python में कितने क्यूब कटे हैं, यह खोजने का प्रोग्राम Python में कितने क्यूब कटे हैं, यह खोजने का प्रोग्राम

    मान लीजिए, a, b, और c आयामों के कई क्यूब्स हैं, और उनका उपयोग करके axbxc आयाम का एक नया बॉक्स बनाया जाता है। a, b, और c pairwise को-प्राइम हैं; gcd(a, b) = gcd(b,c) = gcd(c, a) = 1। हमें एक सिंगल स्लाइस के साथ बॉक्स को दो टुकड़ों में काटना है जैसा कि चित्र में दिखाया गया है। हमें यह पता करना है कि य

  1. Python में मैट्रिक्स के खाली सेल चुनने के कितने तरीके हैं, इसकी जांच करने का प्रोग्राम Python में मैट्रिक्स के खाली सेल चुनने के कितने तरीके हैं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक N x N बाइनरी मैट्रिक्स है जहां 0 खाली सेल के लिए है और 1 ब्लॉक्ड सेल है, हमें N खाली सेल चुनने के तरीकों की संख्या ढूंढनी है ताकि हर पंक्ति और हर कॉलम में कम से कम एक चुना हुआ सेल हो। यदि उत्तर बहुत बड़ा है तो परिणाम mod 10^9 + 7 लौटाएंइसलिए, यदि इनपुट इस तरह है000000010तो आउट

  1. पायथन में BST में रेंज में नोड्स की संख्या खोजने का प्रोग्राम पायथन में BST में रेंज में नोड्स की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक BST है, और हमारे पास बाएं और दाएं बाउंड l और r भी हैं, हमें रूट में उन सभी नोड्स की संख्या गिननी है जिनके मान l और r के बीच हैं (सम्मिलित)। उदाहरण के लिए, यदि इनपुट जैसा है: l = 7, r = 13, तो आउटपुट 3 होगा, क्योंकि तीन नोड्स हैं: 8, 10, 12। इसे हल करने के लिए हम निम्न चरणों