Leetcode 463(Java)
来源:互联网 发布:创业方向 知乎 编辑:程序博客网 时间:2024/06/05 12:49
Total Accepted: 35307
Total Submissions: 62217
Difficulty: Easy
Contributors:
amankaraj
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:
AC后突然感觉自己的方法有点笨,无奈今天事情太多了,等回过神会想想更优解再更新。我的思路是从分别上下左右面映射下来数能看见的边,能使得周长能+1,不仅要本块是陆地,还要求从映射方向的前一块不是陆地,大致思路就是这样,AC代码如下有注释:
public int islandPerimeter(int[][] grid) { int result = 0; for(int i =0;i<grid.length;i++){ for(int j=0;j<(grid[i].length);j++){ if(j==0 && (grid[i][j]==1))result++; if(i==0 && (grid[i][j]==1))result++; if(i==grid.length-1 && (grid[i][j]==1))result++; if(j==grid[i].length-1 && (grid[i][j]==1))result++; if(i!=0 && grid[i][j]==1 && grid[i-1][j]==0)result++;//上面映射 if(j!=0 && grid[i][j]==1 && grid[i][j-1]==0)result++;//左面映射 if(i!=grid.length-1 && grid[i][j]==1 && grid[i+1][j]==0)result++;//下面映射 if(j!=grid[i].length-1 && grid[i][j]==1 && grid[i][j+1]==0)result++;//右面映射 } } return result; }
- Leetcode 463(Java)
- leetcode整理(java)
- Leetcode 543(Java)
- Leetcode 389(Java)
- Leetcode 387(Java)
- Leetcode 207(Java)
- leetcode 49(java)
- Leetcode 506(Java)
- Leetcode 22(Java)
- Leetcode 151(Java)
- Leetcode 628(Java)
- Leetcode 645(Java)
- LeetCode-Java (一)
- Leetcode-Java (二)
- Leetcode-Java (三)
- Leetcode-Java (四)
- Leetcode(java)
- leetcode java
- 每日一句:Fear
- GDOI2017第三轮模拟总结
- 【matlab】坐标轴操作
- 第五周 CSS——2
- 当文字太长,3行空间都显示不下,解决办法
- Leetcode 463(Java)
- 3.括号匹配
- Spring5:@Autowired注解、@Resource注解和@Service注解
- scala获取程序运行时间
- bzoj2468 SJY摆棋子(kd_Tree模板题)
- lintcode(32)最小子串覆盖
- ZooKeeper 概述
- 查看C#的IL代码
- 字符串的小处理