腾讯客户端开发三面算法
大概一个小时左右,两道题。面试官很nice和蔼的,说大概三天内会有反馈,现在有三个候选人,我和另外一个表现差不多他们还要再讨论一下,我觉得我肯定挂了因为有一题没写出来。最后反问,我问可不可以再给一道题写一下,面试官说难的耗时久一点简单的就直接给秒了,于是就进入反问环节了。然后我反问俩问题就结束了,关于暑期实习还有其他的吗,客户端后端开发之类的,面试官还是很亲切友好滴。
(二面没有写上去,因为二面只是问了计网HTTP这一块的知识,然后后来发现没有写,应该是当时没有录音后来开始忙了也就忘记了)
- 最大子数组
题目:
给定一个数组,找到一个具有最大和的连续子数组,返回其最大和。示例如下
输入:1,-2,4,5,-1,1
输出:9
最大子数组:[4,5]
大概一分钟不到秒了,dp写的,然后面试官问有没有其他解法,我说了尺取并分析了一下这两个的时间复杂度。我以为面试官会夸我,结果说这是你们acm的练手题吧,我笑哭。
- 求成绩排名百分比
题目:
某班级共有N个学生(N 不超过100),给出某次考试之后的各同学成绩(分数区间[0, 100]),学生k 成绩排名系数P定义如下:
P(k)=分数不超过学生k的人数(包括k本身)/ N * 100,求每个学生成绩的排名P,请使用时间复杂度为O(N)的算法实现。
输入 :第一行为学生计数,第二行为学生分值
3
50 30 70
输出:66.66667 33.33333 100.0
我没写出来在O(N)的条件下……面试官说考虑一下空间换时间,我二维数组还是没写出来……面试官又引导说往桶排序想一下……我还是没写出来……我下去再补补,看了那么多排序唯独忘记了大一刚开始学acm学的桶排序,啊哈算法第一页……注重基础同志……最后面试官让我尽量满足时间复杂度小来写