Leetcode:463.島嶼的周長
給定一個包含 0 和 1 的二維網格地圖,其中 1 表示陸地 0 表示水域。
網格中的格子水平和垂直方向相連(對角線方向不相連)。整個網格被水完全包圍,但其中恰好有一個島嶼(或者說,一個或多個表示陸地的格子相連組成的島嶼)。
島嶼中沒有“湖”(“湖” 指水域在島嶼內部且不和島嶼周圍的水相連)。格子是邊長為 1 的正方形。網格為長方形,且寬度和高度均不超過 100 。計算這個島嶼的周長。
示例 :
輸入: [[0,1,0,0], [1,1,1,0], [0,1,0,0], [1,1,0,0]] 輸出: 16 解釋: 它的周長是下面圖片中的 16 個黃色的邊:
在真實的面試中遇到過這道題?
解題思路:
模擬題。理論上出現1的位置會貢獻4的周長,但是周圍的鄰居如果是1會減小貢獻值。
- 找到數值為1的點。
- 計算它上下左右(如果有)中1的個數num
- 當前點對周長的貢獻則是4-num。
- 統計所有點的貢獻值即可。
class Solution { //下面關掉沒有用的介面 static const auto _____ = []() |