zoukankan      html  css  js  c++  java
  • 463. Island Perimeter

    链接

    463. Island Perimeter

    题意

    给定一个二维数组,模拟海和岛。其中0表示海域,1表示岛屿(全部相连)。求这块岛屿的周长。
    已知条件:

    1. 每一个小格子边长为1
    2. 岛屿中没有内陆湖,说形象点就是岛屿是“实心”的
    3. 数组一维和二维的长度相等(即正方形)
    4. 长宽不超过100
    5. 数组外全是海域

    思路

    遍历数组,遇到海域则跳过,遇到陆地则根据它的上下左右判断是否有海岸。

    代码

    Java:

    public class Solution {
         public static int islandPerimeter(int[][] grid) {
            int ans = 0;
            for (int i = 0; i < grid.length; i++) {
                for (int j = 0; j < grid[i].length; j++) {
                    // 遇到海跳过
                    if (grid[i][j] == 0) continue;
                    // 陆地,统计四个方向
                    // 上,如果是第一行则直接加1,其他方向类似
                    if (i == 0 || grid[i - 1][j] == 0) ans++;
                    // 下
                    if (i == grid.length - 1 || grid[i + 1][j] == 0) ans++;
                    // 左
                    if (j == 0 || grid[i][j - 1] == 0) ans++;
                    // 右
                    if (j == grid[i].length - 1 || grid[i][j + 1] == 0) ans++;
                }
            }
            return ans;
        }
    }
    

    效率

    Your runtime beats 33.53% of java submissions.

  • 相关阅读:
    百奥谷
    3月13日火箭VS老鹰
    百度 hi 下载地址(内测版,正式版)
    中兴u980
    2008年清明节放假通知
    cyp740703 一个女人的自白
    黄唇鱼
    3月9日火箭vs黄蜂
    3月3日火箭vs掘金
    百度hi邀请码
  • 原文地址:https://www.cnblogs.com/zyoung/p/6566589.html
Copyright © 2011-2022 走看看