华为面试一面寄经

🕒 岗位/面试时间
5.31
👥 面试题目
手撕代码没当场写出来,一道图论的题目
给你一个 m x n 的矩阵 board ,由若干字符 'X' 和 'O' ,找到所有被 'X' 围绕的区域,
并将这些区域里所有的 'O' 用 'X' 填充。
示例 1:
输入:board = [["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]
输出:[["X","X","X","X"],["X","X","X","X"],["X","X","X","X"],["X","O","X","X"]]
解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 'O' 都不会被填充为 'X'。 
任何不在边界上,或不与边界上的 'O' 相连的 'O' 最终都会被填充为 'X'。如果两个元素在水平或垂直方向相邻,则称它们是“相连”的
示例2:
输入:board = [["X"]]
输出:[["X"]]
思路: 定义一个结构体,里面存o点的坐标和是否应该转成x。初始化输入地图的时候,把每个o的坐标记录下来,并且标记成true,代表应该翻转。然后初始化完成后遍历这个数组,找到在地图边界的o点,从该点dfs开始遍历,递归把其周围相邻的o点遍历并将flag置为false。dfs流程走完后,最后遍历这个数组,把flag为true的o点转成x就行了。

为什么寄了?
因为我tmd第一步,也就是初始化数组的时候,应该先输入matrix[i][j],然后判断是不是为o,我写反了,导致输入输出一直没变过。

面试完发现秒挂,唉,自己的问题,也没法说啥了 #华为面试# #面试凉经#
全部评论
把图里代码换个位置,这道题就a了,我真的人麻了
1
1
回复 分享
发布于 05-31 13:41 陕西
补充一下,我的主项目是mit xv6,但是面试官貌似不感兴趣,没咋问,问了个linux操作系统八股,我不是很熟悉就答xv6上的,然后问了不了解压缩算法,我说不是很了解,就结束了。下来才想到哈夫曼编码,但感觉很简单应该不是她想要的。感觉和面试官方向不是很匹配。
1
送花
回复 分享
发布于 05-31 14:39 陕西
神州信息
校招火热招聘中
官网直投
1
送花
回复 分享
发布于 05-31 14:48 陕西
老哥,你这2026年的都来和我们卷?
1
送花
回复 分享
发布于 05-31 15:58 陕西
我也是今天面的,但是不是这个部门,和你基本一样的题,但是可能是前面聊的比较久,手撕写完没叫我运行把思路讲了就截图叫我提交了,感觉uu应该就是方向不匹配挂的,不是你的问题
1
送花
回复 分享
发布于 05-31 20:42 四川
楼主面的哪个部门呀
点赞
送花
回复 分享
发布于 05-31 13:41 陕西
校友你问的好难啊。我的手撕特别简单
点赞
送花
回复 分享
发布于 05-31 14:12 陕西

相关推荐

2 4 评论
分享
牛客网
牛客企业服务