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

पायथन में मैट्रिक्स जीरो सेट करें

मान लें कि हमारे पास एक मैट्रिक्स है, उस मैट्रिक्स में यदि एक तत्व 0 है, तो उस मैट्रिक्स की पूरी पंक्ति और कॉलम को 0 बना दें। रूपांतरण जगह में होगा। तो अगर मैट्रिक्स है -

1 0 1
1 1 1
1 1 1

तब आउटपुट होगा -

0 0 0
1 0 1
1 0 1

आइए चरणों को देखें -

  • n :=पंक्तियों की संख्या, m :=स्तंभों की संख्या, सेट फ़्लैग :=false
  • अगर मैट[0, 0] =0, तो फ़्लैग सेट करें:=सच
  • पंक्ति सेट करें:=असत्य, और कॉलम:=असत्य
  • मैं के लिए 1 से n की सीमा में
    • अगर mat[i, 0] =0, तो col :=True सेट करें और लूप तोड़ें
  • i के लिए 1 से m की सीमा में
    • अगर mat[0, i] =0, तो row :=True सेट करें और लूप तोड़ें
  • मैं के लिए 1 से n की सीमा में
    • जे के लिए 1 से मी की सीमा में
      • अगर मैट[i, j] =0, तो mat[i, 0] =0 और mat[0, j] :=0
      • सेट करें
  • मैं के लिए 1 से n की सीमा में
    • जे के लिए 1 से मी की सीमा में
      • अगर मैट[i, 0] =0 और मैट[0, j] =0, तो मैट[i, j] =0
      • सेट करें
  • अगर झंडा सेट है
    • मैं के लिए 0 से n की सीमा में, चटाई [i, 0] :=0
    • मैं के लिए 0 से मी की सीमा में, चटाई[0, i] :=0
  • अन्यथा
    • यदि col सेट है, तो i के लिए 0 से n की सीमा में, चटाई [i, 0] :=0
    • यदि पंक्ति सेट है, तो i के लिए 0 से m की सीमा में, चटाई [0, i] :=0

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

उदाहरण

class Solution(object):
   def setZeroes(self, matrix):
      n = len(matrix)
      m = len(matrix[0])
      flag = False
      if matrix[0][0] == 0:
         flag = True
         row = False
         column = False
      for i in range(1,n):
         if matrix[i][0] == 0:
            column = True
            break
      for i in range(1,m):
         if matrix[0][i] == 0:
            row = True
            break
      for i in range(1,n):
         for j in range(1,m):
            if matrix[i][j] == 0:
               matrix[0][j] = 0
               matrix[i][0]=0
      for i in range(1,n):
         for j in range(1,m):
            if not matrix[i][0] or not matrix[0][j]:
               matrix[i][j] = 0
      if flag:
         for i in range(n):
            matrix[i][0] = 0
         for i in range(m):
            matrix[0][i]=0
      else:
         if column:
            for i in range(n):
               matrix[i][0]=0
         if row:
            for i in range(m):
               matrix[0][i]=0
      return matrix
ob1 = Solution()
print(ob1.setZeroes([[1,0,1],[1,1,1],[1,1,1]]))

इनपुट

[[1,0,1],[1,1,1],[1,1,1]]

आउटपुट

[[0, 0, 0], [1, 0, 1], [1, 0, 1]]

  1. पायथन सेट प्रकार

    सेट मूल रूप से अलग हैश-टेबल ऑब्जेक्ट्स का एक अनियंत्रित संग्रह है। हम सेट का उपयोग कुछ गणितीय कार्यों जैसे सेट यूनियन, चौराहे, अंतर इत्यादि के लिए कर सकते हैं। हम संग्रह से डुप्लिकेट को हटाने के लिए सेट का भी उपयोग कर सकते हैं। सेट तत्व की स्थिति को रिकॉर्ड नहीं करता है। यह अनुक्रमण, स्लाइसिंग या अ

  1. पायथन सेट ऑपरेशन।

    गणित में, एक सेट अलग-अलग वस्तुओं का एक संग्रह होता है, जिसे अपने आप में एक वस्तु के रूप में माना जाता है। उदाहरण के लिए, संख्या 2, 4, और 6 अलग-अलग वस्तुएं हैं, जब उन्हें अलग-अलग माना जाता है, लेकिन जब उन्हें सामूहिक रूप से माना जाता है, तो वे 3 आकार का एक एकल सेट बनाते हैं, जिसे {2,4,6} लिखा जाता है

  1. पायथन सेट

    पायथन सेट एक संग्रह प्रकार है जिसमें एक अनियंत्रित . होता है अद्वितीय . का संग्रह और अपरिवर्तनीय वस्तुओं। दूसरे शब्दों में, एक पायथन सेट डुप्लिकेट आइटम नहीं रख सकता है और एक बार सेट बनने के बाद, आइटम नहीं बदल सकते हैं। नोट:एक सेट के आइटम अपरिवर्तनीय हैं, इसका मतलब है कि हम आइटम नहीं बदल सकते हैं। हा