YouTube Onsite挂经

一共五轮 第一轮: 按一定顺序合并数组(也可以是list叫我怎么方便怎么设定),比如给你[2,3,5][ 3,7,5,8] [2,4,8] 合并后的数组应该是【2,3,7,5,4,8】也就是说原数组的顺序是order matter的,新数组要复合原来数组的order。 刚开始有点懵逼,在面试官给了一些提示后,有了点思路。就是先看每一个数组的第一个元素,如果每一个数组的第一个数字,没有出现在后面的数字里那么该数字就为第一个元素,如果都没有出现就按照行来排就好,当一组元素排好,就删除第一列的元素,重复刚才的操作。 第二轮:月球基站: 说月球上有几个基站,有一个机器人需要能到达各个基站,但是机器人需要充电所以他要往返于基站和充电台之间,问如果建这个充电台会让它到各个基站之间的往返距离最小,中间有障碍。是一道BFS题,先和面试官确认了一下数据结构,比如矩阵模拟地形,*是基站#是障碍物,机器人只能四个方向走。 我的思路是先扫矩阵,遇到了基站BFS记录步长,一个格子代表一步,新建一个矩阵来记步长,每一个基站都数一下最后加在一起。同时另外一个矩阵记当前遍历的基站数,还有记得查重和过滤障碍物,最后选步长最下基站数为总基站数的位置返回。写起来很长,楼主木有写完。第三轮:面经题,但是楼主木有做过~ string A 通过不断的替换变成stringB, 比如abc -->cac 可以 a–>c 变成c-b-c b—>a 变成c-a-c 但是 abc 无法变成 cba。 输出True or False也是上来先懵逼和面试官要了提示,和我说了需要确定下字母范围,比如替换字母 只能在所给stringA的最长字母跨度内。比如abc 无法变成 abz。因为字母范围为a~c (如果是abz字母范围是a~z)然后先让楼主写了一个小function来检验长度和范围这两种情况。 单凭这这个小function并不能检测出 abccba这种情况。 这里我想到了有环的存在所以无法线性转变,面试官说good,然后又没有写完,后来回家想到了如果存在环还要根据刚才所定义的字母范围看可不可以解环,是个超级麻烦的题。但是这轮的面试小哥很亲切。第四轮:找出真正的岛,给一个矩阵 0是水 1 是岛屿, 真正的岛被定义为四周环水,也就是和岸边相连的岛不是真的岛是陆地,我们要把真正的岛还原成水。返回新的矩阵。 这是楼主唯一写完还剩时间的题。额。。。思路是先遍历四周外围的圈圈找到1就dfs接着找把岸边先变成#,这样我们就把岸边和真的岛区分开了,然后dfs找1,1变0,最后#变回1.写的有点繁琐,应该有更加优化的办法。 第五轮:精疲力竭来到第五轮,然而这一轮的题没搞明白。 给你一堆石头,每个石头一个二维坐标,以list的形式给你作为input。现在必须从这一堆石头里拿石头,每次拿的石头必须和他所在同一行或者同一列有石头才可以拿,否则不能拿,问最多可以拿多少石头。这道题如果大家有思路可以分享一下。 8月面的,过去有点久,因为楼主比较懒托到现在才写面经,积攒下RP,今年工作找的好艰辛。

第四轮 island 2 可union find 也可dfs

楼主继续加油!
第一题 结果如果是237458不也是保持顺序吗?

是的没有冲突就可以。

看了一下,的确,237458也是可以的,如果没有先后顺序排哪个都可以。

求问下楼主是hc挂的还是没进hc呀?

最后一题应该是一个联通分量的题目,把同一行同一列的union在一起,然后得到几个联通分量就是有几个最后剩下的,其他的可以全拿

木有进HC,最后一题没有给出解法。。

账号有误。。。不好意思。。。没有进HC,我最后一轮没有给出解法

啊这样啊抱抱楼主~