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

पायथन में सबलिस्ट का आकार ज्ञात करने का प्रोग्राम जहां A के न्यूनतम और A के आकार का गुणनफल अधिकतम हो


मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक अन्य मान pos है। हमें nums की एक सबलिस्ट A ज्ञात करनी है जिसमें इंडेक्स pos शामिल हो ताकि (A का न्यूनतम) * (A का आकार) अधिकतम हो, फिर मान लौटाएं।

इसलिए, यदि इनपुट nums = [-2, 2, 5, 4] pos = 3 जैसा है, तो आउटपुट 8 होगा, क्योंकि सबसे अच्छी सबलिस्ट [5, 4] है, क्योंकि min(5, 4) = 4 और इसका आकार 2 है तो 4 * 2 = 8।

हल करने के चरण

  • ans := A[pos], m := A[pos]

  • i := pos, j := pos

  • i के लिए 0 से A के आकार - 1 तक की रेंज में निम्नलिखित करें

    • left := A[i - 1] यदि i - 1 >= 0 अन्यथा -inf

    • right := A[j + 1] यदि j + 1 < A का आकार अन्यथा -inf

    • यदि left >= right, तो i := i - 1, m := m और A[i] का न्यूनतम

    • अन्यथा, j := j + 1, m := m और A[j] का न्यूनतम

    • ans := ans और m * (j - i + 1) का अधिकतम

  • ans लौटाएं

उदाहरण

class Solution:
    def solve(self, A, pos):
        NINF = float("-inf")
        ans = m = A[pos]
        i = pos
        j = pos
        for _ in range(len(A) - 1):
            left = A[i - 1] if i - 1 >= 0 else NINF
            right = A[j + 1] if j + 1 < len(A) else NINF
            if left >= right:
                i -= 1
                m = min(m, A[i])
            else:
                j += 1
                m = min(m, A[j])
            ans = max(ans, m * (j - i + 1))
        return ans

ob = Solution()
nums = [-2, 2, 5, 4]
pos = 3
print(ob.solve(nums, pos))

इनपुट

[-2, 2, 5, 4], 3

आउटपुट

8
  1. - पायथन में दो सूचियों का कार्टेशियन उत्पाद खोजने का प्रोग्राम

    मान लीजिए हमारे पास डेटा की दो सूचियां l1 और l2 हैं। हमें इन दो सूचियों का कार्टेशियन उत्पाद ढूंढना है। जैसा कि हम जानते हैं यदि दो सूचियां (a, b) और (c, d) की तरह हैं तो कार्टेशियन उत्पाद {(a, c), (a, d), (b, c), (b, d)} होगा। ऐसा करने के लिए हम itertools लाइब्रेरी का उपयोग करेंगे और इस लाइब्रेरी म

  1. - पायथन में स्टोन्स को मर्ज करने की न्यूनतम लागत खोजने का प्रोग्राम

    मान लीजिए हमारे पास N स्टोन्स के ढेर एक पंक्ति में व्यवस्थित हैं। यहां i-वें ढेर में stones[i] संख्या में स्टोन्स हैं। एक चाल में K लगातार ढेर को एक ढेर में मर्ज करना शामिल है, अब इस चाल की लागत इन K ढेर में स्टोन्स की कुल संख्या के बराबर है। हमें सभी स्टोन्स के ढेर को एक ढेर में मर्ज करने की न्यून

  1. पायथन में ग्राफ में सबसे बड़े क्लिक का न्यूनतम आकार ज्ञात करने का प्रोग्राम पायथन में ग्राफ में सबसे बड़े क्लिक का न्यूनतम आकार ज्ञात करने का प्रोग्राम

    मान लीजिए हमें एक ग्राफ दिया गया है और हमें उसमें सबसे बड़े क्लिक का न्यूनतम आकार ढूंढना है। एक ग्राफ का क्लिक ग्राफ का एक उपसमुच्चय है जहां हर जोड़ी शीर्ष आसन्न होती है, यानी हर जोड़ी शीर्ष के बीच एक किनारा मौजूद होता है। ग्राफ में सबसे बड़ा क्लिक ढूंढना बहुपद समय में संभव नहीं है, इसलिए छोटे ग्रा