কম্পিউটার টিউটোরিয়াল

পাইথনে একটি ম্যাট্রিক্সে ১-এর সবচেয়ে বড় বর্গাকার এলাকা খুঁজে বের করার প্রোগ্রাম


মান लीजिए हमारे पास एक बाइनरी मैट्रिक्स है, हमें उस दिए गए मैट्रिक्स में ১-এর सबसे बड़े वर्ग को ढूंढना है।

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

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 := res और matrix[i, 0] का अधिकतम
  • i को 0 से matrix[0] के आकार तक के लिए, करें
    • res := res और matrix[0, i] का अधिकतम
  • i को 1 से मैट्रिक्स की पंक्ति संख्या तक के लिए, करें
    • j को 1 से मैट्रिक्स की स्तंभ संख्या तक के लिए, करें
      • अगर matrix[i, j] 1 के समान है, तो
        • matrix[i, j] = (matrix[i-1, j], matrix[i-1, j-1] और matrix[i, j-1] का न्यूनतम) + 1
      • res = res और matrix[i, j] का अधिकतम
  • res^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. পাইথনে পলিগনের ক্ষেত্রফল বের করার প্রোগ্রাম

  3. পাইথনে হিস্টোগ্রামের নিচে সর্বোচ্চ আয়তাকার এলাকা খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে ম্যাট্রিক্সের ট্রান্সপোজ বের করা