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

अजगर में 1 के साथ वर्ग सबमैट्रिस की संख्या खोजने का कार्यक्रम

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

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

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
  • मैं श्रेणी में 0 से मैट्रिक्स की पंक्ति गणना के लिए, करते हैं
    • जे के लिए रेंज 0 से लेकर मैट्रिक्स के कॉलम काउंट तक, करें
      • यदि मैं 0 के समान है या j, 0 के समान है, तो
        • रेस:=रेस + मैट्रिक्स[i, j]
      • अन्यथा जब मैट्रिक्स [i, j] 1 के समान हो, तो
        • मैट्रिक्स[i, j] =न्यूनतम (मैट्रिक्स[i, j-1], मैट्रिक्स[i-1, j] और मैट्रिक्स[i-1, j-1]) + 1
        • रेस:=रेस + मैट्रिक्स[i, j]
  • रिटर्न रेस

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

उदाहरण

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. पायथन में दिए गए बाइनरी मैट्रिक्स में वर्ग सबमैट्रिस की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास 2D बाइनरी मैट्रिक्स है। हमें मैट्रिक्स में मौजूद वर्ग सबमैट्रिस की कुल संख्या ज्ञात करनी है, जहां सभी तत्व 1 हैं। तो, अगर इनपुट पसंद है 0 1 1 0 1 1 तो आउटपुट 5 होगा, क्योंकि एक (2 × 2) वर्ग है, और चार (1 × 1) वर्ग हैं इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - यद

  1. पायथन में बाइनरी सूची में योग के साथ उपन्यासकारों की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास 0s या 1s के साथ एक बाइनरी सूची है। हमारे पास k नामक एक अन्य इनपुट भी है, हमें उन सबलिस्ट्स की संख्या ज्ञात करनी है जिनका योग k के समान है। इसलिए, यदि इनपुट संख्या =[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. पायथन में n नोड्स के साथ BST की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास अलग-अलग नोड हैं। सभी अलग हैं। हमें यह पता लगाना है कि हम उन्हें कितने तरीकों से व्यवस्थित कर सकते हैं ताकि हम बाइनरी सर्च ट्री बना सकें। जैसा कि हम बाइनरी सर्च ट्री के बारे में जानते हैं, लेफ्ट सबट्री में हमेशा छोटे मान होते हैं और राइट सबट्री में बड़े मान होते हैं। इसे हल कर