Find largest island in a board
1 package fb; 2 3 public class LargestIsland { 4 public int findLargestIsland(int[][] board) { 5 if (board==null || board.length==0 || board[0].length==0) return 0; 6 int m = board.length; 7 int n = board[0].length; 8 int maxArea = 0; 9 for (int i=0; i=m || j<0 || j>=n || board[i][j]!=1) return 0;23 int area = 1;24 board[i][j] = 2;25 area += dfs(board, i-1, j, m, n);26 area += dfs(board, i+1, j, m, n);27 area += dfs(board, i, j-1, m, n);28 area += dfs(board, i, j+1, m, n);29 return area;30 }31 32 /**33 * @param args34 */35 public static void main(String[] args) {36 // TODO Auto-generated method stub37 LargestIsland sol = new LargestIsland();38 //int[][] arr = new int[][]{ {1,0,0,0},{0,1,0,0},{0,0,1,1},{0,0,1,1}};39 int[][] arr = new int[][]{ {1,0,1},{0,1,0},{0,1,1}};40 int res = sol.findLargestIsland(arr);41 System.out.println(res);42 }43 44 }