亚马逊经典面试题实例详解
时间:2019-04-07
本文章向大家介绍亚马逊经典面试题实例详解,主要包括亚马逊经典面试题实例详解使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
亚马逊面试题:
如下所示的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; }
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
- 邻接矩阵存储有向图(详解)
- [快学Python3]二分查找[策略优化版本]
- 使用 zipfile 解压含有中文文件名的 zip 文件
- qsc oj 22 哗啦啦村的刁难(3)(随机数,神题)
- [快学Python3]数据结构与算法-二分查找
- [快学Python3]数据结构-队列
- 51Nod 1090 3个数和为0(暴力)
- qscoj 128 喵哈哈村的魔法源泉(2)(模仿快速幂,好题)
- POJ 3624 Charm Bracelet(01背包裸题)
- 2015 计蒜之道 初赛(4)爱奇艺的自制节目(枚举 贪心)
- Codeforces 810C Do you want a date?(数学,前缀和)
- [快学Python3]数据结构-堆栈
- [快学Python3]PyMySQL库
- [快学Python3]SMTP发送邮件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 前端如何将json数据导出为excel文件
- 使用Postman访问腾讯云API3.0
- C语言将float拆分为4个hex传输与重组
- C语言字符串相关函数使用示例 strtok_r strstr strtok atoi
- FreeRTOS例程1-基础任务创建
- ARouter路由记录
- java的DES和3DES加解密算法
- Flink 批处理算子详解
- Flink 流计算算子函数详解
- TensorFlow-手写数字识别(三)
- 常用字节转换(字符串转16进制,16进制转字符串)
- TensorFlow-手写数字识别(二)
- TensorFlow-手写数字识别(一)
- OpenCV-简易答题卡识别
- Flink 原理详解