一文解決LeetCode島嶼問題

2022-01-29 19:17:55 字數 1732 閱讀 7351

463. 島嶼的周長

求島嶼的周長其實有很多種方法,如果用 dfs 遍歷來求的話,有一種很簡單的思路:島嶼的周長就是島嶼方格和非島嶼方格相鄰的邊的數量。注意,這裡的非島嶼方格,既包括水域方格,也包括網格的邊界。我們可以畫一張圖,看得更清晰:

200. 島嶼數量

之前很困惑,一直不理解返回值為非void型別的遞迴函式如何編寫,因為返回值為void的情況,直接傳入全域性變數即可,不需要去考慮區域性變數的值。經過這些島嶼問題,總算是明白了函式的引數以及函式內的區域性變數是每個函式棧獨有的,但遞迴函式回退到之前某個函式棧時,對應的區域性變數的值也就回退到之前的版本,然後全域性變數的好處就在於它的不會隨著遞迴函式的回退而改變。

class solution ,,,};

int ans = 0;

public int dfs(char grid,int used,int x,int y)這種型別的**塊。

if(used[x][y] == 1) return 0;

used[x][y] = 1;

for(int i = 0; i < 4; i++)

return 1;

}public int numislands(char grid) }}

return ans;}}

695. 島嶼的最大面積

同樣本題也在於編寫返回值為int型別的遞迴函式,注意本題的兩個解法:尤其是累加區域性變數的解法。

class solution ,,,};

public int dfs(int grid,int used,int x,int y)

return cnt;

}public int maxareaofisland(int grid) }}

return ans;}}

class solution ,,,};

int cnt = 0;

public int dfs(int grid,int used,int x,int y)

return cnt;

}public int maxareaofisland(int grid) }}

return ans;}}

一文解決Python切換版本問題

目錄 由於mac預設都會安裝python2.x,這給我們python開發造成不便,我們經常要用到python3.x的版本來進行測試 開發,比如開源專案有2.x和3.x的,我們就必須來回切換使用不同版本python進行測試 開發,非常不方便,所以我們要在電腦安裝pyenv來自由切換python版本,類...

一文看懂kylin

kylin到底解決了什麼關鍵問題 要徹底的解決掉資料查詢時間隨著資料量的增長而成線性增長的規律 kylin適合哪類資料的處理 通常查詢資料,一般是統計結果,如果是統計結果,必然會按照維度來進行聚合,kylin的工作原理是多維立方體分析,適合需要從多個維度來觀察資料的查詢。維度,看資料的角度,比如地區...

一文看懂xml

先簡單介紹下html xml xpath 1.html 超文字語言,用來展示資料。2.xml 可擴充套件標記語言,用來傳輸資料。僅僅是純文字,標籤可自定義。3.xpath 專門在xml中查詢資訊的語言。xml 文件必須包含根元素。該元素是所有其他元素的父元素。xml 文件中的元素形成了一棵文件樹。這...