前往
大廳
主題

LeetCode - 2428. Maximum Sum of an Hourglass 解題心得

Not In My Back Yard | 2023-08-22 12:00:01 | 巴幣 0 | 人氣 79

題目連結:


題目意譯:
你被給定一個 m × n 大小的整數矩陣 grid。

我們定義一個「沙漏」為矩陣中的一部份,其形式為以下:

回傳一個沙漏的最大元素總和之值。

注意到沙漏是無法旋轉的,並且必須完整地被包含於矩陣之中。

限制:
m == grid.length
n == grid[i].length
3 ≦ m, n ≦ 150
0 ≦ grid[i][j] ≦ 10 ^ 6



範例測資:
範例 1:
輸入: grid = [[6,2,1,3],[4,2,1,5],[9,2,8,7],[4,1,2,9]]
輸出: 30
解釋: 上圖顯示的格子們中有著最大總和值的沙漏為:6 + 2 + 1 + 2 + 9 + 2 + 8 = 30。

範例 2:
輸入: grid = [[1,2,3],[4,5,6],[7,8,9]]
輸出: 35
解釋: 該矩陣中只有一個沙漏,其總和值為:1 + 2 + 3 + 5 + 7 + 8 + 9 = 35。


解題思維:
直接窮舉所有沙漏的中心,即一個沙漏正中間的格子(或是任意格子也行)。而這些中心可以在以第 1 列第 1 行(索引值從 0 開始)這個格子為左上角到第 m - 2 列到第 n - 2 行這個格子為右下角的子矩陣中的任意位置。

因此有了中心之後,我們直接檢查每一個沙漏的總和值哪個最大即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作