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 面试题 : 岛的周长相关推荐

  1. 九章算法 | Facebook 面试题 : Backpack VI 背包算法

    2017-12-21 题目描述 给一个nums[]数组,如[1, 2, 4] 将这些数组合使得: 这些数的和是给出的一个target,如使这些数的和等于4,求这样的组合有多少个? 样例 样例 [1, ...

  2. 最长回文子串动态规划_九章算法 | 微软面试题:最长回文子串

    给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串. 在线评测地址:LintCode 领扣 样例 1: 输入:"abcdzdcab&quo ...

  3. 编号是i的结点所在的层次号是_九章算法 | 微软面试题:二叉树的锯齿形层次遍历...

    给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 在线评测地址:LintCode 领扣 样例 1: 输入:{1,2,3} 输出:[[1],[3,2]] ...

  4. 多个数字数组_九章算法 | 谷歌面试题:多个数组的交集

    给出多个数组,求它们的交集.输出他们交集的大小. 在线评测地址:LintCode 领扣 样例 1: 输入: [[1,2,3],[3,4,5],[3,9,10]]输出: 1解释:只有3出现在三个数组中. ...

  5. 九章算法 | Google 面试题:Same Number

    撰文 | JZ 专栏 | 九章算法 题目描述 给一个数组,如果数组中存在相同数字,且相同数字的距离小于给定值k,输出YES,否则输出NO. 思路点拨 用HashMap记录每个元素最后一次出现的位置,遍 ...

  6. 九章算法 | Google面试题:堆化

    描述 给出一个整数数组,堆化操作就是把它变成一个最小堆数组. 对于堆数组A,A[0]是堆的根,并对于每个A[i],A [i * 2 + 1]是A[i]的左儿子并且A[i * 2 + 2]是A[i]的右 ...

  7. 九章算法-面试题总结(算法、强化算法、系统设计高清视频观看)

    1 落单的数 题目描述: 有2n+1个数,其中2n个数两两成对,1个数落单,找出这个数.要求O(n)的时间复杂度,O(1)的空间复杂度. 进阶问题:如果有2n+2个数,其中有2个数落单,该怎么办? 分 ...

  8. arrays合并两个数组_九章算法 | 字节跳动面试题:合并k个排序数组

    将 k 个有序数组合并为一个大的有序数组. 在线评测地址:LintCode 领扣 样例 1: Input: [[1, 3, 5, 7],[2, 4, 6],[0, 8, 9, 10, 11]] Out ...

  9. 匹配左括号或者右括号js_九章算法 | 蚂蚁金服面试题:有效的括号字符串

    [题目描述] 给定一个只包含三种类型字符的字符串:'(',')'和 '*', 编写一个函数来检查该字符串是否有效. 我们通过以下规则定义字符串的有效性: 1.任何左括号 '('必须有一个相应的右括号' ...

最新文章

  1. 数学图形(1.40)T_parameter
  2. 数据结构之二叉树(遍历、建立、深度)
  3. 实现DFS之“农田灌溉”
  4. boost::fusion::any用法的测试程序
  5. 智能家居中语音识别算法研究_语音识别研究获进展
  6. 前端做聊天软件的功能难点
  7. echart高级使用_Vue:在Vue中使用echarts
  8. 可批量查询企业工商数据信息的API
  9. ABAP BAPI 复制标准项目模板实现项目立项
  10. 技术分享:2.0mm小间距多接枝刚挠结合板制作工艺研究
  11. 霆智服务器安装Windows系统,无人值守全自动安装windows系统
  12. [HARDWARE] ddr、ddr2、ddr3的区别
  13. 跨域访问, 小小的总结.
  14. 自动关机 DOS命令
  15. CMTS Internal Forwarding Model
  16. 基于php后台的购物商城微信小程序的设计与实现
  17. 大数据与公共管理变革
  18. 数据库内连接与外连接
  19. oracle性能调优书,Oracle性能调优领域的百科全书
  20. 快看漫画升级为快看,用漫剧推动行业进入视频时代

热门文章

  1. OpenCV中重映射
  2. 转录组+微生物组联合解密困扰50年的丛枝菌根共生“自我调节”中枢分子网络机制...
  3. 教你Mac电脑复制手机粘贴的隐藏玩法
  4. 数字孪生体技术白皮书_数字孪生体的标准化之路
  5. win10删除开机密码_win10系统,电脑密码和微软密码都忘记了,怎么办? Day22
  6. 第5课 开心的金明《聪明人的游戏:信息学探秘.提高篇》(优化空间)
  7. 1.8 编程基础之多维数组 08 矩阵加法 python
  8. 10产品经理要懂的-人性行为之自私的本质
  9. STM32F407+CubeMX-使用TIM产生PWM信号
  10. C++学习之Dev-C++安装与调试