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

पायथन में रिअरेंजमेंट के साथ सबसे बड़ा सबमैट्रिक्स खोजने का प्रोग्राम


मान लीजिए हमारे पास एक m x n बाइनरी मैट्रिक्स है, हम मैट्रिक्स के कॉलम को किसी भी क्रम में रिअरेंज कर सकते हैं। हमें मैट्रिक्स के भीतर सबसे बड़े सबमैट्रिक्स का क्षेत्रफल ढूंढना है जहां कुछ रिऑर्डरिंग करने के बाद सबमैट्रिक्स का हर एलिमेंट 1 हो।

उदाहरण के लिए, यदि इनपुट है:

101
111
001

तो आउटपुट 4 होगा क्योंकि, कॉलम स्वैप करने के बाद हमें मैट्रिक्स मिलता है:

110
111
010

यहां अधिकतम सबमैट्रिक्स चार 1's के साथ वर्गाकार आकार का है।

हल करने के चरण

  1. row := मैट्रिक्स की पंक्ति संख्या, col := मैट्रिक्स की कॉलम संख्या
  2. j को 0 से col - 1 तक लूप चलाएं:
    • i को 1 से row - 1 तक लूप चलाएं:
      • यदि matrix[i][j] == 1, तो matrix[i][j] := matrix[i][j] + matrix[i-1][j]
  3. ans := 0
  4. i को 0 से row - 1 तक लूप चलाएं:
    • matrix[i] सूची को सॉर्ट करें
    • j को col-1 से 0 तक घटाते हुए लूप चलाएं:
      • यदि matrix[i][j] == 0, तो लूप से बाहर निकलें
      • ans = max(ans, (col-j) * matrix[i][j])
  5. ans वापस करें।

उदाहरण

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

def solve(matrix):
    row, col = len(matrix), len(matrix[0])
    for j in range(col):
        for i in range(1, row):
            if matrix[i][j]:
                matrix[i][j] += matrix[i-1][j]
    ans = 0
    for i in range(row):
        matrix[i].sort()
        for j in range(col-1, -1, -1):
            if matrix[i][j] == 0:
                break
            ans = max(ans, (col-j) * matrix[i][j])
    return ans

matrix = [[0,0,1],[1,1,1],[1,0,1]]
print(solve(matrix))

इनपुट

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

आउटपुट

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

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

  1. पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें

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

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

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