思路一:動態規劃
每乙個點到最近鄰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電平的雙向轉換。如果需要測量電壓電流並且評判是...