精華區beta Marginalman 關於我們 聯絡資訊
其實以前寫過 但我也忘記以前怎麼寫的了 總之 把matrix[i][j]變成: 以(i,j)為最右下角畫出的最大正方形的邊長 最後sum(matrix)就是答案了 def countSquares(self, matrix: List[List[int]]) -> int: m, n = len(matrix), len(matrix[0]) #dp for i in range(1, m): for j in range(1, n): if matrix[i][j]>0: matrix[i][j] = min(matrix[i-1][j-1], matrix[i-1][j], matrix[i][j-1])+1 return sum([sum(matrix[i]) for i in range(m)]) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.58.28 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1755704338.A.2F2.html