【LeetCode】463.Island Perimeter(easy)解题报告
2017-10-22 18:45
471 查看
【LeetCode】463.Island Perimeter(easy)解题报告
tags: HashTable
题目地址:https://leetcode.com/problems/island-perimeter/description/
题目描述:
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:
![](https://img-blog.csdn.net/20171022184454472?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFveGlhb3hpYW95dQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
Solution:
Date:2017年10月22日
tags: HashTable
题目地址:https://leetcode.com/problems/island-perimeter/description/
题目描述:
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:
Solution:
class Solution { public int islandPerimeter(int[][] grid) { if(grid.length==0 || grid[0].length==0){ return 0; } int land = 0; int overlap = 0; for(int i=0 ; i<grid.length ; i++){ for(int j=0 ; j<grid[0].length ; j++){ if(grid[i][j]==1){ land++; if(i<grid.length-1 && grid[i+1][j]==1){ overlap++; } if(j<grid[i].length-1 && grid[i][j+1]==1){ overlap++; } } } } return 4*land - 2 * overlap; } }
Date:2017年10月22日
相关文章推荐
- 【LeetCode】257.Binary Tree Paths(Easy)解题报告
- 【LeetCode】226.Invert Binary Tree(Easy)解题报告
- 【LeetCode】637.Average of Levels in Binary Tree(Easy)解题报告
- [leetcode] 463. Island Perimeter 解题报告
- 【LeetCode】234.Palindrome Linked List(Easy)解题报告
- 【LeetCode】581.Shortest Unsorted Continuous Subarray(easy)解题报告
- 【LeetCode】628.Maximum Product of Three Numbers(Easy)解题报告
- 【LeetCode】687.Longest Univalue Path(Easy)解题报告
- LeetCode解题报告 112. Path Sum [easy]
- LeetCode解题报告 100. Same Tree [easy]
- 【LeetCode】653.Two Sum IV - Input is a BST(Easy)解题报告
- 【LeetCode】447.Number of Boomerangs(Easy)解题报告
- 【LeetCode】243.Shortest Word Distance(Easy)解题报告
- LeetCode解题报告 104. Maximum Depth of Binary Tree [easy]
- 【LeetCode】217.Contains Duplicate(Easy)解题报告
- 【LeetCode】455.Assign Cookies(Easy)解题报告
- LeetCode解题报告 107. Binary Tree Level Order Traversal II [easy]
- 【LeetCode】100.Same Tree(Easy)解题报告
- LeetCode解题报告 349. Intersection of Two Arrays [easy]
- 【LeetCode】401.Binary Watch(easy)解题报告