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

पायथन में दिए गए मैट्रिक्स में 1s के सबसे बड़े वर्ग का क्षेत्रफल ज्ञात करने का कार्यक्रम

मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है, हमें उस दिए गए मैट्रिक्स में 1s का सबसे बड़ा वर्ग खोजना होगा।

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

1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0

तो आउटपुट 16 होगा।

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

  • res :=0
  • i के लिए 0 से लेकर मैट्रिक्स के आकार तक के लिए, करें
    • res :=अधिकतम रेस और मैट्रिक्स[i, 0]
  • i के लिए 0 से लेकर मैट्रिक्स के आकार तक[0], करें
    • res :=अधिकतम रेस और मैट्रिक्स[0, i]
  • मैं श्रेणी 1 से मैट्रिक्स की पंक्ति गणना के लिए, करते हैं
    • जे के लिए श्रेणी 1 में मैट्रिक्स की कॉलम गणना के लिए, करें
      • यदि मैट्रिक्स [i, j] 1 के समान है, तो
        • मैट्रिक्स[i, j] =न्यूनतम (मैट्रिक्स[i-1, j], मैट्रिक्स[i-1, j-1] और मैट्रिक्स[i, j-1]) + 1
      • res =अधिकतम रेस और मैट्रिक्स[i, j]
  • रिटर्न रेस^2

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

उदाहरण

class Solution:
   def solve(self, matrix):
      res = 0
      for i in range(len(matrix)):
         res = max(res, matrix[i][0])
      for i in range(len(matrix[0])):
         res = max(res, matrix[0][i])

      for i in range(1, len(matrix)):
         for j in range(1, len(matrix[0])):
            if matrix[i][j] == 1:
               matrix[i][j] = min(matrix[i - 1][j], matrix[i - 1][j - 1], matrix[i][j - 1]) + 1

               res = max(res, matrix[i][j])

      return res * res

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

इनपुट

matrix = [  
[1, 0, 0, 0, 0, 1, 1],  
[0, 0, 0, 0, 0, 1, 1],  
[0, 1, 1, 1, 1, 0, 0],  
[0, 1, 1, 1, 1, 0, 0],  
[0, 1, 1, 1, 1, 0, 0],  
[0, 1, 1, 1, 1, 0, 0] ]

आउटपुट

16

  1. पायथन में बहुभुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

    मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का क्षेत्रफल ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 15 होगा। इसे हल करने के लिए, हम इन चरणों का पालन क

  1. पायथन में हिस्टोग्राम के तहत सबसे बड़ा आयत क्षेत्र खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास हिस्टोग्राम में बार की ऊंचाई का प्रतिनिधित्व करने वाली संख्याओं की एक सूची है। हमें सबसे बड़े आयत का क्षेत्रफल ज्ञात करना है जो कि सलाखों के नीचे बन सकता है। इसलिए, यदि इनपुट अंकों की तरह है =[3, 2, 5, 7] तो आउटपुट 10 . होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंग

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

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