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

首頁 > 編程 > C > 正文

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

2020-01-26 13:53:09
字體:
來源:轉載
供稿:網友

亞馬遜面試題:

如下所示的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;}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 宁安市| 福建省| 太保市| 商都县| 南涧| 板桥市| 滁州市| 勐海县| 西丰县| 兖州市| 扎鲁特旗| 尼勒克县| 吐鲁番市| 左贡县| 康平县| 辽阳县| 临夏县| 西林县| 濮阳市| 庆元县| 通海县| 金乡县| 博爱县| 麦盖提县| 凤城市| 阿拉善右旗| 河源市| 木里| 涞源县| 肇东市| 富平县| 通城县| 章丘市| 高密市| 临邑县| 耒阳市| 太和县| 五家渠市| 绥宁县| 宣化县| 镇赉县|