如果矩陣中存在0,那麼把0所在的行和列都置為0。要求在所給的矩陣上完成操作。
注意:最好的空間複雜度是常數空間
思路:1.建立乙個矩陣的拷貝,然後根據這個拷貝進行判斷o(mn)
2.建立乙個陣列,記錄矩陣為0的行和列下標o(m+n)
3.把有0的元素對映到首行和首列o(c)
這裡的複雜度是空間複雜度
class solution(object):
def setzeroes(self, matrix):
""":type matrix: list[list[int]]
:rtype: void do not return anything, modify matrix in-place instead.
"""first_row = false
first_col = false
m = len(matrix)
n = len(matrix[0])
for i in range(m):
if matrix[i][0] == 0:
first_col = true
for j in range(n):
if matrix[0][j] == 0:
first_row = true
for i in range(1, m):
for j in range(1, n):
if matrix[i][j] == 0:
matrix[i][0] = matrix[0][j] = 0
for i in range(1, m):
for j in range(1, n):
if matrix[0][j] == 0 or matrix[i][0] == 0:
matrix[i][j] = 0
if first_row:
for j in range(n):
matrix[0][j] = 0
if first_col:
for i in range(m):
matrix[i][0] = 0class solution:
# @param matrix, a list of lists of integers
# return nothing, modify matrix in place.
def setzeroes(self, matrix):
m , n = len(matrix), len(matrix[0])
row , col = [0 for i in range(m)] , [0 for i in range(n)]
for i in range(m):
for j in range(n):
if not matrix[i][j]:
row[i]=col[j]=1
for i in range(m):
if row[i]:
for j in range(n):
matrix[i][j]=0
for j in range(n):
if col[j]:
for i in range(m):
matrix[i][j]=0class solution:
# @param matrix, a list of lists of integers
# return nothing, modify matrix in place.
def setzeroes(self, matrix):
m , n = len(matrix), len(matrix[0])
temp = [[matrix[i][j] for j in range(n)] for i in range(m)]
for i in range(m):
for j in range(n):
if not temp[i][j]:
self.setzero(i,j,n,m,matrix)
def setzero(self,row,col,n,m,matrix):
for i in range(m):
matrix[i][col]=0
for j in range(n):
matrix[row][j]=0
程式設計開發練習題
急!災區的食物依然短缺!為了挽救災區同胞的生命,心繫災區同胞的你準備自己採購一些糧食支援災區,現在假設你一共有資金n元,而市場有m種大公尺,每種大公尺都是袋裝產品,其 不等,並且只能整袋購買。請問 你用有限的資金最多能採購多少公斤糧食呢?後記 人生是乙個充滿了變數的生命過程,天災 人禍 病痛是我們生...
沙漠之旅 程式設計開發習題
問題描述 小明準備來次穿越撒哈拉沙漠壯舉,他知道穿越沙漠是件冒險的事情,所以他準備了一輛有x個油箱的車來次沙漠之旅。有x個油箱,從前到後放成一排,編號為1 x。出發前小明對油箱進行了y次操作,其中有3種操作方式 1.修改乙個油箱的油量 2.求連續一段油箱的油量和 3.求連續一段油箱的油量最大值。對於...
輸出PATest 程式設計開發習題
給定乙個長度不超過10000的 僅由英文本母構成的字串。請將字元重新調整順序,按 patestpatest.這樣的順序輸出,並忽略其它字元。當然,六種字元的個數不一定是一樣多的,若某種字元已經輸出完,則餘下的字元仍按patest的順序列印,直到所有字元都被輸出。輸入格式 輸入在一行中給出乙個長度不超...