携程4.16笔试

前两道签到题
第三题卡了太久没什么思路了
第四题没时间了就没做
大家T3T4是怎么思考的呀?
以及有人知道大概笔试做出多少能进面?
全部评论
15分钟做完签到题,剩下时间坐牢
17 回复
分享
发布于 04-16 21:17 上海
100 100 0 0
10 回复
分享
发布于 04-16 21:03 北京
滴滴
校招火热招聘中
官网直投
第四题树形DP,DFS 预处理出以 u 节点为子树根节点时,往下的最大高度和往上的最大高度。应该可以参考 https://zhuanlan.zhihu.com/p/657528677。但我当时只想到暴力O(n^2)的遍历,只过了20%就超时了。
7 回复
分享
发布于 04-16 21:08 上海
第三题很怪啊,明明说得很简单啊,但是只过5%。把题读了无数遍,都不知道是我哪里理解错了
4 回复
分享
发布于 04-16 21:02 重庆
我的做法是先打表,找出10^6内的素数。注意素数合并的时候,2是特例,其余素数合并不会是素数。思考一下素数合并顺序,先判断一遍三连素数,优先合并和是素数的。然后就只有两个素数相连的情况,普通合并就行
4 回复
分享
发布于 04-16 21:04 陕西
第三题:先说思路,因为两个素数合并还有可能是素数,这种情况只有可能发生在2和一个素数的合并。先遍历一遍,如果有这样的情况先合并,然后数组中就只剩下其他的素数,这些素数就从左往右合并。 我不知道是我思路有问题还是什么,我只过了10%
4 回复
分享
发布于 04-16 21:07 江苏
刚做完就来搜了,三四题我也没思路。。同问
2 回复
分享
发布于 04-16 21:01 吉林
第三题要考虑合并顺序,不能直接从左往右合并,唉反正我是没思路
2 回复
分享
发布于 04-16 21:03 浙江
第四题用dfs,测试用例自己测都没问题啊,为啥提交就5%啊。。不理解
2 回复
分享
发布于 04-16 21:05 湖北
T3,要知道5以后的素数要么%6==1要么%6==5,然后素数里面只有一个2是偶数,所以其他素数相加必定是合数,只有2+一个素数可能是素数,然后因为上面那个6两边的结论可以知道+2还是素数的只能是%6==5的,而+4还是素数的看上去可以是%6==1的,但是%6==1的在加第一次2的时候就变成合数了所以只有3可以加两次2还是素数,考虑到了上面这些情况就好做了
2 回复
分享
发布于 04-16 21:20 广东
第三题考虑了太多特殊情况,结果最后也没写完,感觉是想得太细反而复杂了 首先定义素世n的“优先级”:n+4仍为素世记2,n+2仍为素世记1,只有n本身为素数记0 遍历中首先找到连续的素数序列list,在这个list片段中遍历:{ while(list.indexOf(2)>=0){ //片段中存在2 ①对于连续的2,从非2的那端开始消解(这部分没想好怎么写); ②对于单个的2:{ 2的index为i; 检查index两侧素数的优先级,让2与优先级更高的素数结合,优先级相同则考虑2所在index的奇偶性; } } }
2 回复
分享
发布于 04-16 21:26 湖北
第三题用栈存储素数。1.栈空,下一个元素是素数,进栈;2.栈不空,栈顶元素和下一个元素之和还是素数,合并,更新结果,直到不满足该条件;3.栈不空,下一个元素是合数,把栈内元素全合了,更新结果值(此时栈内元素不会出现之和还是素数的情况)
2 回复
分享
发布于 04-16 22:14 上海
第三题回溯一通结果超时,第四题一通操作结果0
1 回复
分享
发布于 04-16 21:03 江苏
已经麻了 100 5% 5% 最后一个压根没写完 第三个写40min 5% 心态就有点炸了
1 回复
分享
发布于 04-16 21:03 河北
第三题对2做特殊处理就好了(看左右数是否为素数且加完之后还要为素数,如果都满足优先选左,否则选满足的那个),剩下的直接判断素数用贪心求
1 回复
分享
发布于 04-16 21:09 上海
t3 线性dp能过
1 回复
分享
发布于 04-16 21:11 辽宁
50分能进吗? = 。 = ||||
1 回复
分享
发布于 04-16 21:15 陕西
最后一题构建树都构建麻了,你们怎么构建的,构建半天成功了,出来算法不对,0%
1 回复
分享
发布于 04-16 22:15 上海
限时1s我用java1.1s给我通过了,这个算吗
1 回复
分享
发布于 04-16 22:33 江苏
100 100 100 10 最后一题坐牢一个多小时
1 回复
分享
发布于 04-17 12:50 江西

相关推荐

感觉前两题比较简单,后两题难度比较大,做完之后是100,100,20,0,也不知道能不能进面试第一题很简单,给一个长宽,给两个符号,让输出一个矩阵,要求符号交替出现,每个符号周围(上下左右)不能是和当前符号相同的,比较简单,相信各位大佬也都能A,就不细说了。第二题也不难,给一个正整数(非常长,可能有5000位),给一个k,给一个p,要求找到这个正整数中长度为k的一段数字的最大值,输出这个最大值%p的结果,也不很难。第三题看起来很简单,但是实际有难度。给一个数组,长度为n,再给q组数据,每组数据两个数l,r,代表左右边界,要求输出数组第l位一直乘到第r位的乘积%6。1相信各位牛友都能写出来,主要问题在于时间复杂度。如果使用最直接的方法算,n,q都到10^5时显然会超时,这也是一直卡在20%的原因。显然他是想让我们利用一些计算过的值,不要有太多重复计算,这可以大大减少时间复杂度,例如我们算过了10-20,在算10-21时直接用10-20的结果乘21就好了。最开始试图直接打表,写完发现内存爆了,此路不通。苦思冥想怎么能够实现重复利用,想到一种思路,我们可以分块,比如1-100000分成100块:1-1000、1000-2000、……、99000-100000,预先计算出每一段的结果,存起来,然后算q组数据的时候就可以利用了,比如0-2001,就可以利用1-1000、1000-2000这两段从而降低时间复杂度。但是想了太久了,最后也没写完,也不知道可不可行,哎,还是题写的太少了,菜还是得练,刷题去了这是鼠鼠做的第一个比较大的厂的笔试,本来还想着要不要推到下一批,想想算了,直接冲吧。也不知道能不能过欢迎牛友们一起交流,本人四月底才开始申请暑期实习,希望能和各位大佬们多交流,早日收到满意offer!
投递携程等公司8个岗位
点赞 评论 收藏
转发
2 7 评论
分享
牛客网
牛客企业服务