কম্পিউটার টিউটোরিয়াল

পাইথনে হিস্টোগ্রামের নিচে সর্বোচ্চ আয়তাকার এলাকা খুঁজে বের করার প্রোগ্রাম


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

तो, अगर इनपुट इस तरह है 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-এ ডায়реक्टেড গ্রাফে সর্বোচ্চ রঙ মান বের করার প্রোগ্রাম

  2. পাইথনে হিস্টোগ্রামে সবচেয়ে বড় আয়ত

  3. পাইথন প্রোগ্রাম অ্যারেতে সবচেয়ে বড় এলিমেন্ট বের করা

  4. পাইথনে অ্যারে থেকে সর্বোচ্চ এলিমেন্ট বের করা