# Week 1: June 1st - June 7th ## Max Area of Island ### ==Solution:== - Shan ```javascript /** * @param {number[][]} grid * @return {number} */ var maxAreaOfIsland = function(grid) { let area = 0; let row = grid.length; let column = grid[0].length; for (let i = 0; i < row; i++) { for (let j = 0; j < column; j++) { if (grid[i][j] == 1) { // island! area = Math.max(area, islandAround(i, j)); } } } // 回傳 area function islandAround(i, j) { // 終止條件 if (i < 0 || j < 0 || i >= row || j >= column || !grid[i][j] ) { return 0; } // 將目前 (i,j) 位置標為0, 代表已算過 grid[i][j] = 0; // area +1, 繼續執行上下左右位置 return 1 + islandAround(i + 1, j) + islandAround(i - 1, j) + islandAround(i, j + 1) + islandAround(i, j - 1); } return area; }; ``` :::info 遞迴方式去計算島嶼四個方向是否有值 (i, j) :arrow_right: `(i-1,j)`, `(i+1, j)`, `(i, j-1)`, `(i, j+1)` ::: ###### tags: `leetcode` `pixnet` `june` `2021`