九章算法 | Facebook 面试题 : 岛的周长
生活随笔
收集整理的這篇文章主要介紹了
九章算法 | Facebook 面试题 : 岛的周长
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2017-12-21
題目描述
以二維整數(shù)網(wǎng)格的形式給出地圖,1代表陸地,0代表水。網(wǎng)格單元水平/垂直連接(不包含對(duì)角)。整張地圖被水完全包圍,并且有一個(gè)島(即一個(gè)或多個(gè)連接的陸地單元)。島上沒(méi)有“湖泊”(里面的水沒(méi)有連接到島外的水)。一個(gè)單元格是邊長(zhǎng)為1的正方形。 網(wǎng)格為矩形,寬度和高度不超過(guò)100。確定島嶼的周長(zhǎng)。樣例
輸入: [[0,1,0,0],[1,1,1,0],[0,1,0,0],[1,1,0,0]]輸出:16解答
根據(jù)觀察我們可以得知,如果某個(gè)島嶼的周?chē)幸粋€(gè)島嶼的話(huà),那么它的周?chē)腥叺暮?#xff0c;以此類(lèi)推,我們可以觀察出規(guī)律... #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判斷也可以得出結(jié)果,但是這樣的代碼一定沒(méi)有這樣優(yōu)美...總結(jié)
以上是生活随笔為你收集整理的九章算法 | Facebook 面试题 : 岛的周长的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 从零开始学PowerShell(10)P
- 下一篇: BZOJ1720: [Usaco2006