leetcode 463. 島嶼的周長(Island Perimeter)
阿新 • • 發佈:2019-03-25
內部 組成 沒有 () 它的 二維 lee ima 多個
目錄
- 題目描述:
- 示例 :
- 解法:
題目描述:
給定一個包含 0 和 1 的二維網格地圖,其中 1 表示陸地 0 表示水域。
網格中的格子水平和垂直方向相連(對角線方向不相連)。整個網格被水完全包圍,但其中恰好有一個島嶼(或者說,一個或多個表示陸地的格子相連組成的島嶼)。
島嶼中沒有“湖”(“湖” 指水域在島嶼內部且不和島嶼周圍的水相連)。格子是邊長為 1 的正方形。網格為長方形,且寬度和高度均不超過 100 。計算這個島嶼的周長。
示例 :
輸入:
[[0,1,0,0],
[1,1,1,0],
[0,1,0,0],
[1,1,0,0]]
輸出:
16
解釋:
它的周長是下面圖片中的 16 個黃色的邊:
解法:
class Solution { public: int islandPerimeter(vector<vector<int>>& grid) { int m = grid.size(); if(m == 0){ return 0; } int n = grid[0].size(); if(n == 0){ return 0; } int res = 0; for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ if(grid[i][j] == 1){ res += 4; if(i > 0 && grid[i-1][j] == 1){ res -= 2; } if(j > 0 && grid[i][j-1] == 1){ res -= 2; } } } } return res; } };
leetcode 463. 島嶼的周長(Island Perimeter)