程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python description leetcode 73 Matrix zeroing

編輯:Python

Python describe LeetCode 73. Matrix zeroing

Hello everyone , I'm Qi Guanjie (qí guān jié ), stay 【 Qi Guanjie 】 official account 、CSDN、GitHub、B Share some technical blog posts on the website and other platforms , It mainly includes front-end development 、python The backend development 、 Applet development 、 Data structure and algorithm 、docker、Linux Common operation and maintenance 、NLP And other related technical blog , Time flies , Future period , come on. ~

If you love bloggers, you can focus on the bloggers' official account. 【 Qi Guanjie 】(qí guān jié), The articles inside are more complete and updated faster . If you need to find a blogger, you can leave a message at the official account. , I will reply to the message as soon as possible .


This article was originally written as 【 Qi Guanjie 】(qí guān jié ), Please support the original , Some platforms have been stealing blog articles maliciously !!! All articles please pay attention to WeChat official account 【 Qi Guanjie 】.

subject

Given a *m* x *n* Matrix , If an element is 0 , Set all elements of the row and column to 0 . Please use In situ Algorithm **.**

Example 1:

 Input :matrix = [[1,1,1],[1,0,1],[1,1,1]]
Output :[[1,0,1],[0,0,0],[1,0,1]]

Example 2:

 Input :matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
Output :[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

Tips :

  • m == matrix.length
  • n == matrix[0].length
  • 1 <= m, n <= 200
  • -231 <= matrix[i][j] <= 231 - 1

Advanced :

  • An intuitive solution is to use O(*m**n*) Extra space , But it's not a good solution .
  • A simple improvement is to use O(*m* + *n*) Extra space , But it's still not the best solution .
  • Can you come up with a solution that only uses constant space ?

Python describe

Only O(1) Space , Then find the first one who has 0 As a tag line , Record the columns that need to be zeroed , Then set to zero

class Solution:
def setZeroes(self, matrix: List[List[int]]) -> None:
""" Do not return anything, modify matrix in-place instead. """
n,m = len(matrix),len(matrix[0])
flag = -1
for idx,item in enumerate(matrix):
if 0 in item:
flag = idx
for j in range(m):
matrix[flag][j] = 1 if matrix[flag][j] == 0 else 0
break
if flag == -1:
return
for i in range(n):
if i == flag:
continue
if 0 in matrix[i]:
for j in range(m):
matrix[flag][j] = 1 if matrix[i][j] == 0 or matrix[flag][j] else 0
matrix[i][j] = 0
for j in range(m):
if matrix[flag][j] == 1:
for i in range(n):
matrix[i][j] = 0

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved