433-岛屿的个数
来源:互联网 发布:沪深大宗交易数据 编辑:程序博客网 时间:2024/04/30 06:39
4.11
数组统一赋值的函数Arrays.fill();
感觉自己的想法很野啊,用总的点的个数去减。
就是要注意边界值,数组是从下标0开始的,一定要注意。
public class Solution { /** * @param grid a boolean 2D matrix * @return an integer */ public static int numIslands(boolean[][] grid) {//flag数组用来存储是否访问过了 int N = grid.length;if(N <= 0){ return 0;}//行数int M = grid[0].length;if(M <=0){ return 0;}//列数int count = M*N;boolean[][] flag = new boolean[N][M];for(int i = 0;i < N;i++){for(int j = 0;j < M;j++){if(flag[i][j] == false){flag[i][j] =true;if(grid[i][j] == false){count --;}else{count = around(i,j,grid,flag,M,N,count);}}}}return count;// Write your code here}//给定一个点,判断它的四周public static int around(int i,int j,boolean[][] grid,boolean[][] flag,int m,int n,int count) { //上边if(i-1 >=0 && flag[i-1][j] ==false){flag[i-1][j] = true;if(grid[i-1][j] == true){count --;count = around(i-1,j,grid,flag,m,n,count);}else{count --;}}//下边if(i+1 < n && flag[i+1][j] ==false){flag[i+1][j] = true;if(grid[i+1][j] == true){count --;count = around(i+1,j,grid,flag,m,n,count);}else{count --;}}//左边if(j-1 >=0 && flag[i][j-1] ==false){flag[i][j-1] = true;if(grid[i][j-1] == true){count --;count = around(i,j-1,grid,flag,m,n,count);}else{count --;}}//右边if(j+1 < m && flag[i][j+1] ==false){flag[i][j+1] = true;if(grid[i][j+1] == true){count --;count = around(i,j+1,grid,flag,m,n,count);}else{count --;}}return count; }}
0 0
- 433-岛屿的个数
- [LintCode 433] 岛屿的个数(Python)
- 题目:岛屿的个数
- LintCode 岛屿的个数
- LinkCode-岛屿的个数
- 岛屿的个数
- 岛屿的个数
- 岛屿的个数-lintcode
- 岛屿的个数
- 岛屿的个数
- LintCode:岛屿的个数
- 岛屿的个数
- 岛屿的个数-LintCode
- 岛屿的个数(LintCode)
- LintCode 433. 岛屿的个数
- Java实现-岛屿的个数
- 岛屿个数
- Lintcode解题笔记 - 岛屿的个数
- ThinkPHP之方法
- Gson的使用
- 我眼中的现代计算机-程序设计章节
- maven项目部署到tomcat
- http 400 Bad Request The request sent by the client was syntactically incorrect
- 433-岛屿的个数
- unity中异步加载游戏场景与异步加载游戏资源进度条
- js代码不执行问题
- 修改警告 解决图片无法加载的问题
- RxJava & RxAndroid简单使用(4)
- POJ1751 Highways
- 判断是不是qq内置浏览器
- admin
- ProGuard manual Usage翻译