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

बाइनरी मैट्रिक्स में 1 वाले वर्ग सबमैट्रिक्स की संख्या ज्ञात करने का पायथन प्रोग्राम


मान लीजिए हमारे पास एक 2D बाइनरी मैट्रिक्स है, हमें उन वर्ग सबमैट्रिक्स की कुल संख्या ढूंढनी है जिनमें सभी 1 हैं।

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

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

तो आउटपुट 17 होगा क्योंकि 12 (1 x 1) वर्ग, 4 (2 x 2) वर्ग और 1 (3 x 3) वर्ग हैं।

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

  • res := 0
  • i को 0 से मैट्रिक्स की पंक्ति संख्या तक के लिए, करें
    • j को 0 से मैट्रिक्स की स्तंभ संख्या तक के लिए, करें
      • यदि i, 0 के समान है या j, 0 के समान है, तो
        • res := res + matrix[i, j]
      • अन्यथा जब matrix[i, j] 1 के समान है, तो
        • matrix[i, j] = (matrix[i, j - 1], matrix[i - 1, j] और matrix[i - 1, j - 1]) का न्यूनतम + 1
        • res := res + matrix[i, j]
  • res लौटाएं

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

उदाहरण

class Solution:
    def solve(self, matrix):
        res = 0
        for i in range(len(matrix)):
            for j in range(len(matrix[0])):
                if i == 0 or j == 0:
                    res += matrix[i][j]
                elif matrix[i][j] == 1:
                    matrix[i][j] = min(matrix[i][j - 1], matrix[i - 1][j], matrix[i - 1][j - 1]) + 1
                    res += matrix[i][j]
        return res

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

इनपुट

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

आउटपुट

17

  1. - Python प्रोग्राम - बाइनरी मैट्रिक्स में वर्ग सबमैट्रिक्स की संख्या गिनें

    एक 2D बाइनरी मैट्रिक्स दी गई है। हमें मैट्रिक्स में मौजूद कुल वर्ग सबमैट्रिक्स की संख्या खोजनी है जहां सभी तत्व 1 हैं। उदाहरण इनपुट मैट्रिक्स: 011 011 आउटपुट: 5 व्याख्या: एक (2×2) वर्ग और चार (1×1) वर्ग हैं। एल्गोरिदम (डायनामिक प्रोग्रामिंग) यदि mat खाली है: 0 लौटाएं c := 0 i 0 से पंक्ति संख्

  1. - पायथन में बाइनरी सूची में योग k वाले सबलिस्ट की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास 0 या 1 के साथ एक बाइनरी सूची है। हमारे पास एक और इनपुट k भी है, हमें उन सबलिस्ट की संख्या ढूंढनी है जिनका योग k के समान है। इसलिए, यदि इनपुट है nums = [1, 0, 0, 1, 1, 1, 0, 1], k = 3, तो आउटपुट होगा 8 क्योंकि सबलिस्ट हैं [1,0,0,1,1], [0,0,1,1,1], [0,0,1,1,1,0], [0,1,1,1], [0,1,1,

  1. पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की सूची है। हमारे पास x नामक एक और संख्या भी है। हमें nums से उन सभी नंबरों को फ़िल्टर करके ढूंढना है जो x से कम हैं। पायथन में filter() मेथड होता है जो फंक्शन को आर्गुमेंट के रूप में लेता है और इस फंक्शन का उपयोग करके फ़िल्टर करता है। तो, यदि इनपुट nums = [1,5