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

    Question:

    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 1:

    [[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:
    
    

    Solution:

    class Solution {
    public:
        int islandPerimeter(vector<vector<int>>& grid) {
            int cnt = 0;
            for(int i = 0; i < grid.size(); i++) {
                for(int j = 0; j < grid[i].size(); j++) {
                    if(grid[i][j] == 1) {
                        cnt += 4;
                        if(i != 0 && grid[i-1][j] == 1)
                            cnt -= 2;
                        if(j != 0 && grid[i][j-1] == 1)
                            cnt -= 2;
                    }
                }
            }
            return cnt;
        }
    };

    题目直达:https://leetcode.com/problems/island-perimeter/#/description

    答案直达:http://www.liuchuo.net/archives/2984

  • 相关阅读:
    学习手机安全卫士项目源码记录(一)
    AIDL Service
    让一个Activity在开机后自动显示
    如何拦截手机屏幕休眠和唤醒动作
    润前报表简单问题
    javaEE框架的session获取
    UEditer使用
    jQuery动态绑定生成的元素
    javadoc 生成乱码
    个人异常收集_SE_EE_WEB...
  • 原文地址:https://www.cnblogs.com/SapphireCastle/p/6759806.html
Copyright © 2011-2022 走看看