美文网首页
2017.08.31依图面试

2017.08.31依图面试

作者: Gigi9 | 来源:发表于2017-08-31 23:34 被阅读0次

    今晚连着面了三轮依图。。毫无间隔。。累pee= =

    第一轮

    自我介绍+介绍项目

    算法题1

    leetcode题目

    一个长度为n的数组,其中有一个数字出现次数大于n/2次,找出这个数字。

    这个题貌似是个竞赛经典题。。之前一个同事给我讲过这个题,但是我给忘了!但是现场给出了两种解法。。第三种面试官怎么提示都想不出了。。

    第一种:一个dictionary记每个元素出现次数,如果出现次数大于n/2,中断当前遍历并返回,O(n)的复杂度

    第二种:转换为找第n/2大的数字的问题,解决。平均O(n) //我当时第一次说的是排序之后然后中间那个数字就是要找的,结果面试官让我写排序算法,我写着写着快排反应过来的。。

    查了一下,是http://blademastercoder.github.io/2015/02/04/leetcode-MajorityElement.html 的思路2的解法

    leetcode进阶题目

    算法题2

    给出一个m行n列的矩阵,由元素0和1组成,元素0表示当前位置可以走,元素1表示当前位置是围墙不能走。找出从(x0, y0)到(x1, y1)的任意一条路径

    深度优先搜索

    第二轮

    自我介绍+职业规划聊天=。=

    算法题1

    n皇后问题,n*n矩阵里放n个皇后,给出一种解法

    算法题2

    已有一个Rand2()函数,可以等概率地生成0和1(都是1/2),问利用这个函数如何等概率地生成0, 1, 2, 3, 4, 5, 6。

    面试官给出提示,先考虑如何等概率地生成0-7

    每个出现的概率是1/8,这个可以用三位二进制表示法,每位是一个Rand2()

    然后到等概率地生成0-6,只需在生成111的时候,再生成一次就可以

    第三轮

    自我介绍+项目介绍

    算法题1

    leetcode题目

    进阶:

    leetcode题目

    算法题2

    leetcode原题

    然鹅我还是不知道解法现场想的。。。

    进阶:

    从最多只能进行一次买卖改为最多可以进行两次买卖,问最大收益是多少

    这个面到第三面脑子已经完全不转了。。。面试官给的解法。。

    从前往后扫一次,找前i天最大收益A[i];从后往前扫一次,找后i天最大收益B[i];这两个可以一次遍历做完。

    然后再遍历一遍,找A[i]+B[i]最大值

    最后的吐槽。。无间断连续三场(我开始还以为只面一场。。也怪自己没问清楚。。于是晚饭都没吃就去了。。还好男票在面试前跑去给买了面包和水,在前两场中间塞了一个面包= =)还是挺懵以及挺难一直集中注意力的。。一个大屋子里,就3v3的面试别人说话也听得很清楚,于是话到了脑子里脑子就会处理一下,于是思路也就会断一下= =不过感觉面试官都很有趣~他们做的东西也都挺有趣的233(感觉自己被洗脑成功了。。

    相关文章

      网友评论

          本文标题:2017.08.31依图面试

          本文链接:https://www.haomeiwen.com/subject/dtacjxtx.html