1277。計算全為 1 的方形子矩陣
難度:中
主題:陣列、動態規劃、矩陣
給定一個由 1 和 0 組成的 m * n 矩陣,傳回 有多少 方 子矩陣全部為 1。
範例1:
範例2:
約束:
提示:
解:
我們可以使用動態規劃(DP)來追蹤方子矩陣的數量,其中所有子矩陣都可以在矩陣中的每個單元格結束。以下是實現這一目標的方法:
DP 矩陣定義:
過渡公式:
對於矩陣中的每個單元格 (i, j):
dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1
- If `matrix[i][j]` is 0, `dp[i][j]` will be 0 because a square of ones cannot end at a cell with a zero.
計算所有方塊:
時間複雜度:
讓我們用 PHP 實作這個解:1277。計算全為 1 的方形子矩陣
dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1
這個解決方案是高效的並且滿足問題中提供的限制。
聯絡連結
如果您發現本系列有幫助,請考慮在 GitHub 上給 存儲庫 一個星號或在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大!
如果您想要更多類似的有用內容,請隨時關注我:
以上是計算全為 1 的方形子矩陣的詳細內容。更多資訊請關注PHP中文網其他相關文章!