国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

亞馬遜經典面試題實例詳解

2020-05-23 13:46:00
字體:
來源:轉載
供稿:網友

亞馬遜面試題:

如下所示的Map中,0代表海水,1代表島嶼,其中每一個島嶼與其八領域的區間的小島能相連組成島嶼群。寫代碼,統計Map中島嶼個數。

/* Q1. Map [ 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 ] */

實現代碼:

#include<iostream>#include<queue>using namespace std;typedef struct {  int i;  int j;}position;void search(int a[][], int n, int i, int j, int cnt) {  queue<position> qu = new queue<position>();  position p;  p.i = i;  p.j = j;  qu.push(p);  a[i][j] = cnt;  while (!qu.empty()) {    p = qu.pop();    for (int ii = p.i - 1; ii <= p.i + 1; ii++) {      for (int jj = p.j - 1; jj <= p.j + 1; jj++) {        if (ii >= 0 && ii < n && jj >= 0 && jj < n && a[ii][jj] == 1 && (ii != i || jj != j)) {          a[ii][jj] = cnt;          p.i = ii;          p.j = jj;          qu.push(p);        }      }    }  }}int count(int a[][], int n) {  int cnt = 1;  for (int i = 0; i < n; i++) {    for (int j = 0; j < n; j++) {      if (a[i][j] == 1) {        cnt++; // 發現一個新陸地        search(a, n, i, j, cnt);      }    }  }  return cnt;}int main() {  int n;  cin >> n;  int a[][] = new int[n][n];  for (int i = 0; i < n; i++) {    for (int j = 0; j < n; j++) {      cin >> a[i][j];    }  }  int cnt = count(a, n);  cout << cnt - 1 << endl;  return 0;}

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁武县| 花垣县| 九江市| 洛南县| 祁阳县| 嘉兴市| 读书| 固镇县| 郁南县| 七台河市| 多伦县| 阳城县| 华安县| 灵宝市| 遂溪县| 门源| 教育| 新余市| 平果县| 苍山县| 镇赉县| 竹山县| 霍林郭勒市| 仪征市| 白水县| 休宁县| 贵州省| 基隆市| 永康市| 太仓市| 子洲县| 类乌齐县| 青铜峡市| 曲周县| 江油市| 静安区| 兴仁县| 乌拉特中旗| 河西区| 华容县| 措勤县|