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

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

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

तो, अगर इनपुट पसंद है

1 0 1
1 1 1
0 0 1

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

1 1 0
1 1 1
0 1 0

यहां अधिकतम सबमैट्रिक्स चार 1 के साथ चौकोर आकार का है।

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

  • पंक्ति:=मैट्रिक्स की पंक्तियों की संख्या, कॉलम:=मैट्रिक्स के स्तंभों की संख्या
  • जे के लिए 0 से col-1 की श्रेणी में, do
    • 1 से पंक्ति -1 की श्रेणी में i के लिए
      • यदि मैट्रिक्स [i, j] 1 है, तो
        • मैट्रिक्स[i, j] :=मैट्रिक्स[i, j] + मैट्रिक्स[i-1, j]
  • उत्तर:=0
  • मैं के लिए 0 से पंक्ति -1 की सीमा में, करो
    • सूची मैट्रिक्स को क्रमबद्ध करें[i]
    • जे के लिए col-1 से 0 की श्रेणी में, 1 से घटाएं
      • यदि मैट्रिक्स [i, j] 0 के समान है, तो
        • लूप से बाहर आएं
        • Ans =अधिकतम उत्तर और (col-j)*matrix[i, j])
  • वापसी उत्तर

उदाहरण

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

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. एक सरणी में सबसे बड़ा तत्व खोजने के लिए पायथन प्रोग्राम

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

  1. एक मैट्रिक्स के स्थानान्तरण को खोजने के लिए पायथन कार्यक्रम

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

  1. एक सरणी में सबसे बड़ा तत्व खोजने के लिए पायथन कार्यक्रम

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