菜雞leetcode之旅 一 01矩陣 未果

2021-10-05 03:45:19 字數 1459 閱讀 3676

思路一:動態規劃

每乙個點到最近鄰0的距離等於四周四個點的距離+1

class solution:

def updatematrix(self, matrix: list[list[int]]) -> list[list[int]]:

d = matrix

for x in range(len(matrix[0])):

for y in range (len(matrix[:][0])):

if matrix[x][y] == 1:

d[x][y] = self.distance(x,y,matrix)

return d

def distance(self,x,y,list2d,x0=-2,y0=-2):

if 0<=x測試用例:[[0,1,1,0,0],[0,1,1,0,0],[0,1,0,0,1],[1,1,1,1,0],[1,0,0,1,0]]

目前存在問題:會在迴圈內打轉,即遞迴沒有最終返回值。

思路二:

1.先檢測出邊界

2.逐步向內部計算直至每乙個點都計算完畢

class solution:

def updatematrix(self, matrix: list[list[int]]) -> list[list[int]]:

d = matrix

for i in range(len(matrix)):

for j in range(len(matrix[0])):

if matrix[i][j] == 1 and not self.near4(i,j,matrix,0):

d[i][j] = -1

dis = 1

#print(d)

while self.find_num(-1,d):

for i in range(len(matrix)):

for j in range(len(matrix[0])):

if matrix[i][j] == -1 and self.near4(i,j,matrix,dis):

d[i][j] = dis + 1

#print(d)

dis = dis+1

return d

def near4(self,x,y,list2d,num):

l = [[x,y-1],[x,y+1],[x-1,y],[x+1,y]]

exist = false

for i,j in l:

if 0<=i通過了,但是結果並不如人意,接下來準備繼續看看大佬的解法學習,結果如下:

菜雞的學習之旅(一)

作為乙個剛剛踏出校園的新入職員工,還是感覺激動中帶著點複雜,總的來說,剛開始要學習的東西真的蠻多的,我作為乙個計算機學院的學生,之前也從來沒有接觸過硬體,除了物理實驗上拿子母線按照老師指示的方法戳來戳去,除此之外毫無理解,上司問你知道微控制器是什麼嗎?我搖搖頭。又問你知道usb3.0,2.0分別是什...

菜雞的學習之旅(二)

2.介面 現在,也就是近一年,非常流行type c的充電器口,其實這個很早就看到了,但是就是近期,很多手機公司都採用這種充電口了,包括華為,一加,查了一下資料,其實之前是有type a,type b介面的,而且在之前還有micro b介面,具體對比圖如下 type c還具有無正反,插拔次數可達1萬次...

菜雞的學習之旅(三)

3.整理一些工作中使用到的晶元 rs232是乙個非常好用的可以用來抽載電壓和電流的晶元,它也是乙個串列埠,可以通過rs232來得到需要的電壓電流。rs232可以與ttl電平轉換,但是需要乙個max232晶元,使用max232晶元可以實現rs232與ttl電平的雙向轉換。如果需要測量電壓電流並且評判是...