LeetCode之Island Perimeter

简介: LeetCode之Island Perimeter

1、题目

You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represents water. Grid cells are connected horizontally/vertically (not diagonally). The grid is completely surrounded by water, and there is exactly one island (i.e., one or more connected land cells). The island doesn't have "lakes" (water inside that isn't connected to the water around the island). One cell is a square with side length 1. The grid is rectangular, width and height don't exceed 100. Determine the perimeter of the island.

Example:

[[0,1,0,0],
 [1,1,1,0],
 [0,1,0,0],
 [1,1,0,0]]
Answer: 16
Explanation: The perimeter is the 16 yellow stripes in the image below:

1.png

2、代码实现

public class Solution {
       public int islandPerimeter(int[][] grid) {
          if (grid == null)
              return 0;
          //gril.length就是行数 row,grid.length就是列数gril
          int row = grid.length;
          int col = grid[0].length;
          int sum = 0, count = 0;
          for (int i = 0; i < row; ++i) {
              for (int j = 0; j < col; ++j) {
                  if (grid[i][j] == 1) {
                      if (i - 1 == -1) {
                          count++;
                      } else {
                           if (grid[i - 1][j] == 0) {
                             count++;
                           }
                      }
                      if (i + 1 == row) {
                          count++;
                      } else {
                        if (grid[i + 1][j] == 0) {
                          count++;
                        }
                      }
                      if (j - 1 == -1) {
                          count++;
                      } else {
                        if (grid[i][j - 1] == 0) {
                          count++;
                        }
                      }
                      if (j + 1 == col) {
                          count++;
                      } else {
                        if (grid[i][j + 1] == 0) {
                          count++;
                        }
                      }
                  }
              }
          }
      return count;    
     }
}


相关文章
|
Java
[LeetCode]Max Area of Island 岛屿的最大面积
链接:https://leetcode.com/problems/max-area-of-island/description/难度:Easy题目:695.
851 0
|
30天前
|
机器学习/深度学习 算法
力扣刷题日常(一)
力扣刷题日常(一)
20 2
|
1月前
|
存储 索引
《LeetCode》—— LeetCode刷题日记
《LeetCode》—— LeetCode刷题日记
|
1月前
|
搜索推荐
《LeetCode》——LeetCode刷题日记3
《LeetCode》——LeetCode刷题日记3
|
1月前
|
容器
《LeetCode》——LeetCode刷题日记1
《LeetCode》——LeetCode刷题日记1
|
1月前
|
算法 测试技术
LeetCode刷题--- 430. 扁平化多级双向链表(深度优先搜索)
LeetCode刷题--- 430. 扁平化多级双向链表(深度优先搜索)
|
1月前
|
存储
实现单链表的基本操作(力扣、牛客刷题的基础&笔试题常客)
实现单链表的基本操作(力扣、牛客刷题的基础&笔试题常客)
143 38