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

हिस्टोग्राम के नीचे सबसे बड़े आयत का क्षेत्रफल ज्ञात करने का पायथन प्रोग्राम


मान लीजिए हमारे पास संख्याओं की एक सूची है जो हिस्टोग्राम में बार की ऊंचाइयों को दर्शाती है। हमें बार के नीचे बनने वाले सबसे बड़े आयत का क्षेत्रफल ढूंढना है।

उदाहरण के लिए, यदि इनपुट nums = [3, 2, 5, 7] है,

हिस्टोग्राम के नीचे सबसे बड़े आयत का क्षेत्रफल ज्ञात करने का पायथन प्रोग्राम

तो आउटपुट 10 होगा।

हिस्टोग्राम के नीचे सबसे बड़े आयत का क्षेत्रफल ज्ञात करने का पायथन प्रोग्राम

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

  • stk := एक स्टैक और प्रारंभ में इसमें -1 डालें
  • heights के अंत में 0 डालें
  • ans := 0
  • i को 0 से heights के आकार तक के लिए, करें
    • जब तक heights[i] < heights[stk के शीर्ष], करें
      • h := heights[stk के शीर्ष] और stk से पॉप करें
      • w := i - stk के शीर्ष - 1
      • ans := ans और (h * w) में से अधिकतम
    • i को stk में पुश करें
  • ans लौटाएं

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

उदाहरण

class Solution:
    def solve(self, heights):
        stk = [-1]
        heights.append(0)
        ans = 0
        for i in range(len(heights)):
            while heights[i] < heights[stk[-1]]:
                h = heights[stk.pop()]
                w = i - stk[-1] - 1
                ans = max(ans, h * w)
            stk.append(i)
        return ans

ob = Solution()
nums = [3, 2, 5, 7]
print(ob.solve(nums))

इनपुट

[3, 2, 5, 7]

आउटपुट

10

  1. Python में हिस्टोग्राम में सबसे बड़ा आयत Python में हिस्टोग्राम में सबसे बड़ा आयत

    मान लीजिए हमारे पास एक पूर्णांक सरणी है जो हिस्टोग्राम की ऊंचाई दर्शाती है। प्रत्येक बार की इकाई चौड़ाई है। हमें निम्नानुसार सबसे बड़े क्षेत्र का आयत ढूंढना है −इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −स्टैक बनाएं, i := 0, ans := 0 सेट करेंजब तक i < heights का आकार, तबयदि स्टैक में 0 तत्व हैं

  1. Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे के सबसे बड़े तत्व की गणना करने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का उपयोग करते हैं जिसमें हम पूरे लूप को पार करके और तत्व प्राप्त करके सबसे बड़ा तत्व निकालते हैं। हम नीच

  1. पायथन प्रोग्राम: ऐरे में सबसे बड़ा एलिमेंट ढूंढें पायथन प्रोग्राम: ऐरे में सबसे बड़ा एलिमेंट ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक ऐरे दिए जाने पर, हमें ऐरे में सबसे बड़ा एलिमेंट ढूंढने की आवश्यकता है। दृष्टिकोण हम max को पहले एलिमेंट के रूप में इनिशियलाइज़ करते हैं। इसके बाद, हम दिए गए ऐरे