मान लें कि हमारे पास एक मैट्रिक्स है, उस मैट्रिक्स में यदि एक तत्व 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 से मी की सीमा में
- मैं के लिए 1 से n की सीमा में
- जे के लिए 1 से मी की सीमा में
- अगर मैट[i, 0] =0 और मैट[0, j] =0, तो मैट[i, j] =0 सेट करें
- जे के लिए 1 से मी की सीमा में
- अगर झंडा सेट है
- मैं के लिए 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]]