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

    463. Island Perimeter

    Easy

    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:

    Input:
    [[0,1,0,0],
     [1,1,1,0],
     [0,1,0,0],
     [1,1,0,0]]
    
    Output: 16
    
    Explanation: The perimeter is the 16 yellow stripes in the image below:
    
    
     
    package leetcode.easy;
    
    public class IslandPerimeter {
    	public int islandPerimeter(int[][] grid) {
    		if (grid == null || grid.length == 0) {
    			return 0;
    		}
    		int result = 0;
    		for (int i = 0; i < grid.length; i++) {
    			for (int j = 0; j < grid[i].length; j++) {
    				if (grid[i][j] == 1) {
    					result += 4;
    					if (i > 0 && grid[i - 1][j] == 1) {
    						result -= 2;
    					}
    					if (j > 0 && grid[i][j - 1] == 1) {
    						result -= 2;
    					}
    				}
    			}
    		}
    		return result;
    	}
    
    	@org.junit.Test
    	public void test() {
    		int[][] grid = { { 0, 1, 0, 0 }, { 1, 1, 1, 0 }, { 0, 1, 0, 0 }, { 1, 1, 0, 0 } };
    		System.out.println(islandPerimeter(grid));
    	}
    }
    
  • 相关阅读:
    synchronized关键字jvm实现及各种锁
    zookeeper选举算法
    git远程操作
    git分支的创建与分支之间合并的底层原理
    员工贷项目总结
    Python之字符串操作
    Python实现购物车的功能
    Python列表学习笔记
    Python中如何使用boolean类型的数据
    Python实现用户登录账户
  • 原文地址:https://www.cnblogs.com/denggelin/p/12017798.html
Copyright © 2011-2022 走看看