解题方案:
var islandPerimeter = function(grid) {
let num = 0;
let border = 0;
for(let i=0;i<grid.length;i++){
var newARR = grid[i];
for(let j=0;j<newARR.length;j++){
if(newARR[j]===1){
num++;
if(i<grid.length-1&&grid[i+1][j]==1){
border++;
}
if(j<newARR.length-1&&grid[i][j+1]){
border++;
}
}
}
}
return num*4 - border*2;
};
解题思路:找规律-看不同的格子排列方式会有什么规律存在;
一个格子有4条边,当两个格子相接是会各损失1条边,也就是两条边,所以只有判断出来有多少个格子和多少个相接就可以了(注意!!判断格子相接的时候,两个格子只产生一次相接,所以对于每个格子只判断它的右边和下边有没有盒子就可以了)