九章算法 | Facebook 面试题 : 岛的周长
生活随笔
收集整理的這篇文章主要介紹了
九章算法 | Facebook 面试题 : 岛的周长
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2017-12-21
題目描述
以二維整數網格的形式給出地圖,1代表陸地,0代表水。網格單元水平/垂直連接(不包含對角)。整張地圖被水完全包圍,并且有一個島(即一個或多個連接的陸地單元)。島上沒有“湖泊”(里面的水沒有連接到島外的水)。一個單元格是邊長為1的正方形。 網格為矩形,寬度和高度不超過100。確定島嶼的周長。樣例
輸入: [[0,1,0,0],[1,1,1,0],[0,1,0,0],[1,1,0,0]]輸出:16解答
根據觀察我們可以得知,如果某個島嶼的周圍有一個島嶼的話,那么它的周圍有三邊的海,以此類推,我們可以觀察出規律... #include<iostream> #include<cstring> using namespace std;const int N = 10; int x[N+1][N+1]; int dx[4]={-1,1,0,0}; int dy[4]={0,0,-1,1};int main(){int n;cin>>n;memset(x,0,sizeof(x));int cnt=0;for (int i=1;i<=n;i++){for (int j=1;j<=n;j++){cin>>x[i][j];}}for (int i=1;i<=n;i++){for (int j=1;j<=n;j++){if (x[i][j]){for (int k=0;k<4;k++){if (!x[i+dx[k]][j+dy[k]]) cnt++;} }}}cout<<cnt<<endl;return 0; } 可能我們用if判斷也可以得出結果,但是這樣的代碼一定沒有這樣優美...總結
以上是生活随笔為你收集整理的九章算法 | Facebook 面试题 : 岛的周长的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从零开始学PowerShell(10)P
- 下一篇: Coremail邮件系统存在配置信息泄露