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

  • 相关阅读:
    软工结对第一次作业
    16061023-软件工程第1次作业
    OO最后一次总结
    OO第三次博客作业
    OO第二次博客作业
    OO第一次博客
    提问回顾与个人总结
    软件工程第一次阅读作业
    test个人博客
    软件工程结对作业
  • 原文地址:https://www.cnblogs.com/SapphireCastle/p/6759806.html
Copyright © 2011-2022 走看看