小白刷題之路 零矩陣

2021-10-25 06:55:45 字數 1267 閱讀 1335

題目描述如下:

編寫一種演算法,若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...