題目描述如下:
編寫一種演算法,若m × n矩陣中某個元素為0,則將其所在的行與列清零。
輸入:
[ [1,1,1],
[1,0,1],
[1,1,1]
]輸出:
[ [1,0,1],
[0,0,0],
[1,0,1]
]
示例2:
輸入:
[ [0,1,2,0],
[3,4,5,2],
[1,3,1,5]
]輸出:
[ [0,0,0,0],
[0,4,5,0],
[0,3,1,0]
]
對於這道題來說,猛的一看感覺挺簡單的,實際上也不難,只要沒有想的太複雜完全可以做出來。
本次題解採用的是開闢了兩個陣列row和column來分別儲存出現數字0的行和列的值。
最後在對所有的資料進行遍歷,如果遍歷到的那個值的行列座標存在於上述兩個陣列中,則置零。
複雜度分析
以下**為python3的**。
class solution:
def setzeroes(self, matrix: list[list[int]]) -> none:
"""do not return anything, modify matrix in-place instead.
"""row, column = len(matrix) * [0], len(matrix[0]) * [0]
for i in range(len(matrix)):
for j in range(len(matrix[0])):
if matrix[i][j] == 0:
row[i] = 1
column[j] = 1
for i in range(len(matrix)):
for j in range(len(matrix[0])):
if row[i] == 1 or column[j] == 1:
matrix[i][j] = 0
最終,經leetcode 平台檢驗,正確通過。 每日刷題 矩陣置零
給定乙個 m x n 的矩陣,如果乙個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地演算法。示例 例 1 輸入 1,1,1 1,0,1 1,1,1 輸出 1,0,1 0,0,0 1,0,1 例 2 輸入 0,1,2,0 3,4,5,2 1,3,1,5 輸出 0,0,0,0 0,4,5,...
leetcode刷題 73矩陣置零
給定乙個 m x n 的矩陣,如果乙個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地演算法。示例 1 輸入 1,1,1 1,0,1 1,1,1 輸出 1,0,1 0,0,0 1,0,1 從頭遍歷陣列,記錄0存在的行號和列號,然後置零 class solution def setzero...
小白刷題之路 697 陣列的度
小白附上自己的思路。也是多虧了python中字段的存在,讓不了解hash原理的我能較清洗的解決問題。分為以下幾個步驟 class solution def findshortestsubarray self,nums list int int num dict n len nums for i in...