記錄刷題——(leetcode——695島嶼的最大面積)

題目:給定一個包含了一些 0 和 1 的非空二維數組 grid 。
一個 島嶼 是由一些相鄰的 1 (代表土地) 構成的組合,這裏的「相鄰」要求兩個 1 必須在水平或者豎直方向上相鄰。你可以假設 grid 的四個邊緣都被 0(代表水)包圍着。
找到給定的二維數組中最大的島嶼面積。(如果沒有島嶼,則返回面積爲 0 。)
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/max-area-of-island
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

DFS暴力破解:

int dfs(int row,int col,int** grid, int gridSize, int* gridColSize){
    if(row<0||row>=gridSize||col<0||col>=*gridColSize||grid[row][col]==0){
        return 0;
    }
    grid[row][col]=0;
    int count =1;
    count += dfs(row-1,col,grid, gridSize, gridColSize);
    count += dfs(row+1,col,grid, gridSize, gridColSize);
    count += dfs(row,col-1,grid, gridSize, gridColSize);
    count += dfs(row,col+1,grid, gridSize, gridColSize);
    return count;
}
int maxAreaOfIsland(int** grid, int gridSize, int* gridColSize){
    int result=0;
    for(int i=0;i<gridSize;i++){
        for(int j=0;j< *gridColSize;j++){
            if(grid[i][j]==1){
                const int result_temp = dfs(i,j,grid,gridSize,gridColSize);
                result = (result<result_temp)?result_temp:result;
            }
        }
    }

    return result;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章