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

पायथन में सुरक्षित दूरी बनाए रखने के लिए k का अधिकतम मान ज्ञात करने का प्रोग्राम


मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है। यहां 0 एक खाली सेल दर्शाता है, और 1 एक व्यक्ति वाले सेल को दर्शाता है। दो सेल्स के बीच की दूरी x निर्देशांकों के अंतर और y निर्देशांकों के अंतर के बीच का अधिकतम मान है। अब मैट्रिक्स को फैक्टर k के साथ सुरक्षित माना जाता है यदि एक खाली वर्ग ऐसा है कि उस सेल से मैट्रिक्स में प्रत्येक व्यक्ति की दूरी, और मैट्रिक्स की प्रत्येक भुजा की दूरी सभी k से अधिक या बराबर हैं। हमें उस फैक्टर k का अधिकतम मान ज्ञात करना है जिसके लिए हम सुरक्षित रह सकते हैं।

इसलिए, यदि इनपुट इस प्रकार है:

00000
01110
01010
01110
00000

तो आउटपुट 1 होगा, क्योंकि मध्य सेल में उस सेल से ग्रिड में प्रत्येक व्यक्ति की दूरी कम से कम 1 है।

हल करने के चरण

  • N := A का आकार

  • M := A[0] का आकार

  • i के लिए 0 से N तक की रेंज में, करें

    • j के लिए 0 से M तक की रेंज में, करें A[i, j] := A[i, j] XOR 1

  • ans := 0

  • i के लिए 0 से N तक की रेंज में, करें

    • j के लिए 0 से M तक की रेंज में, करें

      • यदि i और j शून्येतर हैं और A[i, j] 1 है, तो

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

        • ans = A[i, j] और ans का अधिकतम

  • (ans + 1) / 2 लौटाएं

उदाहरण

class Solution:
    def solve(self, A):
        N = len(A)
        M = len(A[0])
        for i in range(N):
            for j in range(M):
                A[i][j] ^= 1
        ans = 0
        for i in range(N):
            for j in range(M):
                if i and j and A[i][j]:
                    A[i][j] = 1 + min(A[i - 1][j], A[i][j - 1], A[i - 1][j - 1])
                    ans = max(A[i][j], ans)
        return (ans + 1) // 2

ob = Solution()
matrix = [
    [0, 0, 0, 0, 0],
    [0, 1, 1, 1, 0],
    [0, 1, 0, 1, 0],
    [0, 1, 1, 1, 0],
    [0, 0, 0, 0, 0],
]
print(ob.solve(matrix))

इनपुट

[[0, 0, 0, 0, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 0, 0, 0]]

आउटपुट

1
  1. - पायथन में k ऑपरेशन्स के बाद न्यूनतम संभावित अधिकतम मान खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक मान k है। अब एक ऑपरेशन पर विचार करें जहां हम सूची में किसी भी तत्व से 1 घटा सकते हैं। हम इस ऑपरेशन को k बार कर सकते हैं। हमें k ऐसे ऑपरेशन्स के बाद सूची में न्यूनतम संभावित अधिकतम मान ढूंढना है।उदाहरण के लिए, यदि इनपुट nums = [3, 4, 6, 5] और k

  1. - पायथन में नैपसैक समस्या में अधिकतम मान खोजने का प्रोग्राम जहां एकाधिक प्रतिलिपियाँ ली जा सकती हैं

    मान लीजिए हमारे पास समान लंबाई की दो सूचियाँ हैं जिन्हें weights और values कहा जाता है, और हमारे पास एक और मान capacity है। यहां weights[i] और values[i] iवीं वस्तु का वजन और मूल्य दर्शाते हैं। यदि हम अधिकतम capacity वजन ले सकते हैं, और हम प्रत्येक वस्तु की कितनी भी प्रतिलिपियाँ ले सकते हैं, तो हमें

  1. - Python प्रोग्राम से डिक्शनरी में दूसरी अधिकतम मान खोजना

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