給定一個二維數組,表明一個二維表格。
裏面包含0
和1
兩種數字。數組
1表明有內容,0表明沒有。.net
計算有內容的格子的周長。code
最簡單的辦法是,判斷當前格子是否位1,且上下左右是否爲0。leetcode
當任意一個方向有0時,那個方向計算有一個邊長。get
當都爲0時,即當前位置是單獨的一個格子,算上下左右共4條邊。io
<?php class Solution { function islandPerimeter($grid) { $edges = 0; $width = count($grid[0]); $height = count($grid); foreach($grid as $y=>$row){ foreach($row as $x=>$col){ if($col==0){ continue; } if(!isset($grid[$y][$x+1])||$grid[$y][$x+1]==0){ $edges++; } if(!isset($grid[$y][$x-1])||$grid[$y][$x-1]==0){ $edges++; } if(!isset($grid[$y+1][$x])||$grid[$y+1][$x]==0){ $edges++; } if(!isset($grid[$y-1][$x])||$grid[$y-1][$x]==0){ $edges++; } } } return $edges; } }
若以爲本文章對你有用,歡迎用愛發電資助。function