Re: [閒聊] 每日leetcode
其實以前寫過
但我也忘記以前怎麼寫的了
總之
把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
討論串 (同標題文章)
完整討論串 (本文為第 1505 之 1548 篇):