2019秋内推字节跳动第一题
题目大意:
球场中有若干个球队的球迷,同一球队球迷坐的位置都是连在一起的,即这个球迷的上下左右以及斜方向 的人都是同一球队球迷。现在要求其中人数最多的球迷人数,以及共有多少个球迷团体。
思路
当时没有做出来,因为要用到一个叫深度优先搜索树DFS的方法,菜鸡从未接触。它的想法就是:
从左上角开始搜索一个符合条件的地方(这里就是数值为1的地方),从这个地方开始,向右、下(左下斜方向、右下斜方向和右上斜方向[字节跳动那题需要加多这三个方向的])搜索下一个符合条件的值,如果符合就继续这样搜索,直到没有符合的或者达到边界为止。这里也是看了别人的才知道这样写,感觉很巧妙,用了一个int dir[4][2] = {{0,1},{0,-1},{1,0},{-1,0}};数组来移动坐标和返回原坐标。每次符合x>=0&&x
695. 岛屿的最大面积
给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。
找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)
示例 1:
[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]
对于上面这个给定矩阵应返回 6。注意答案不应该是11,因为岛屿只能包含水平或垂直的四个方向的‘1’。
示例 2:
[[0,0,0,0,0,0,0,0]]
对于上面这个给定的矩阵, 返回 0。
注意: 给定的矩阵grid 的长度和宽度都不超过 50。
class Solution {
public:int dfs(vector<vector<int>>& grid, int x0, int y0){int n, m, sum=1;n = grid.size();m = grid[0].size();grid[x0][y0] = 0; //当前元素设置为0,避免再次搜索到int dir[4][2] = {{0,1},{0,-1},{1,0},{-1,0}}; for(int i=0; i<4; i++){ int x = x0 + dir[i][0];int y = y0 + dir[i][1];if(x>=0&&x<n&&y>=0&&y<m&&grid[x][y]==1) //sum+=dfs(grid, x, y);}return sum;}int maxAreaOfIsland(vector<vector<int>>& grid) {int mx = 0, n, m;n = grid.size();//行数m = grid[0].size();for(int i=0; i<n; i++)for(int j=0; j<m; j++){if(grid[i][j] == 1) mx = max(dfs(grid,i,j), mx);}return mx;}};
字节跳动第一题
//若是字节跳动那一题就是还要加上斜边的情况:
class Solution {
public:int dfs(vector<vector<int>>& grid, int x0, int y0){int n, m, sum=1;n = grid.size();m = grid[0].size();grid[x0][y0] = 0; //当前元素设置为0,避免再次搜索到int dir[10][2] = {{0,1},{0,-1},{1,0},{-1,0},{1,1},{-1,-1},{-1,1},{1,-1},{1,-1},{-1,1}};for(int i=0; i<10; i++){ int x = x0 + dir[i][0];int y = y0 + dir[i][1];if(x>=0&&x<n&&y>=0&&y<m&&grid[x][y]==1)sum+=dfs(grid, x, y);}return sum;}int maxAreaOfIsland(vector<vector<int>>& grid) {int mx = 0, n, m;n = grid.size();//行数m = grid[0].size();for(int i=0; i<n; i++)for(int j=0; j<m; j++){if(grid[i][j] == 1) mx = max(dfs(grid,i,j), mx);}return mx;}};
2019秋内推字节跳动第一题相关推荐
- 2019秋内推字节跳动第三题
题目大意: 两个同样大小的数组,a,b.统计MAX(a[l,k]) < MIN(b[l,k])的总数,即是在某一段相同始末位置的子数组中,a的该子数组的最大值如果小于b的对应的子数组的最小值则计 ...
- 阿里巴巴2019应届内推30分钟编程题
其他算法笔试题目: 第一题 2019应届毕业生,网易算法工程师笔试题第一题 第二题 2019应届毕业生,网易算法工程师笔试题第二题 ---------------------------------- ...
- 内推 | 字节跳动算法提前批
点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:字节跳动 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 - ...
- 北京内推 | 字节跳动AML机器学习系统团队招聘机器学习训练框架研发实习生
合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 字节跳动 AML (Applied Machine Learning) 机 ...
- 岗位内推 | 字节跳动招聘NLP、计算机视觉、推荐算法实习生
PaperWeekly 致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁.如果你需要我们帮助你发布实习或全职岗位,请添加微信号「pwbot02」. NLP算法实习生 ...
- 计算机视觉算法实战书籍推荐_岗位内推 | 字节跳动招聘NLP、计算机视觉、推荐算法实习生...
PaperWeekly 致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁.如果你需要我们帮助你发布实习或全职岗位,请添加微信号「pwbot02」. NLP算法实习生 ...
- 内推 | 字节提前批快开始了。。。。
作者:阿秀 阿秀的校招笔记:https://interviewguide.cn 大家好,我是阿秀. 阿秀认识一些去年的秋招上岸党,上岸了不少国内互联网一线大厂,比如字节跳动.百度.阿里.腾讯.快手.美 ...
- ❤️TikTok字节跳动编程题实战2022校招——吐血分享总结(第一弹)。
❤️TikTok字节跳动编程题实战2022校招--吐血分享总结. 前言+说明 一.算法编程题(种树) 二.算法编程题(小A的吃鸡之旅) 三.算法编程题(有序最大K位数) 四.算法编程题(测试计划的最大 ...
- [C] [字节跳动] [编程题] 手串
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 64M,其他语言128M 链接:https://www.nowcoder.com/questionTerminal/0bb1fad52f4 ...
最新文章
- Transformer新玩法登Nature子刊
- 【NOIP2015】【Luogu2661】信息传递(有向图最小环)
- [转]阿拉伯数字转一二三和壹贰叁
- python,pycharm,anaconda,tensorflow安装
- Oracle PL/SQL基础知识
- 翻译qmake文档(二) Getting Started
- Redis基本命令及相关用法
- oppoA37m rom固件刷机包下载 免费下载 解锁专用
- Mysql大文本类型
- hexo博客搭建及主题优化(一)
- 深度学习——李宏毅第一课2020
- 如何使WooCommerce产品属性更加突出
- Python基础语法——if选择
- 接口练习:猫狗案例扩展跳高功能
- java排列组合(递归算法)
- 解决npm 编译时报node_modules/optipng-bin/vendor/optipng ENOENT
- ubuntu 中w指令中的IDLE是什么意思
- 把时间当作朋友 读后感
- 组策略学习-统一部署桌面壁纸
- memcpy函数的实现方式