给定一个二维数组,表明一个二维表格。
里面包含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