携程 4.12 笔试侥幸 AK 了
代码扔这了:https://www.nowcoder.com/discuss/872814076806688768 想复盘自己看吧
Q1 <=3 穷举一下就是 false, 其他情况都是有解的,要么是 n-1, n + 1 要么是 n, n (但是我 Java 一开始写的 超时了改成 CPP 就能过了,感觉是没给 Java 开时限)
Q2 找 0 1 边界的最大值和次大值加起来就好了
Q3 双指针,维护向左向右两个序列,从大到小遍历向左的数组,那么在当前点之前的 2*k 区间内的向右的人的区间是不断左移动的
Q4 最后肯定很快(log 级别)变成 1 和 2,简单算一下 1 变化 x 次答案就是 (x + 1) * 2 ^ x, 2 变化 x 次答案就是 2 ^ (x + 1) #牛客AI配图神器#
Q1 <=3 穷举一下就是 false, 其他情况都是有解的,要么是 n-1, n + 1 要么是 n, n (但是我 Java 一开始写的 超时了改成 CPP 就能过了,感觉是没给 Java 开时限)
Q2 找 0 1 边界的最大值和次大值加起来就好了
Q3 双指针,维护向左向右两个序列,从大到小遍历向左的数组,那么在当前点之前的 2*k 区间内的向右的人的区间是不断左移动的
Q4 最后肯定很快(log 级别)变成 1 和 2,简单算一下 1 变化 x 次答案就是 (x + 1) * 2 ^ x, 2 变化 x 次答案就是 2 ^ (x + 1) #牛客AI配图神器#
全部评论
为啥只考虑1、2,没有3,不是3也会循环出现3吗,而且1变化x次答案不是2^(x+2)-3吗
第一题有解的情况直接一个4,一个n-4就好了
拼多多招27届实习生啦&nbsp;https://careers.pddglobalhr.com/campus/intern/detail?t=dRvUVvcTiA
Q1我也是同样的思路,但是一直超时(Java),没想到换成C
Q2用双指针找到连续0 / 1翻转然后加上两个边界的值为什么不对
Q3感觉把向左的队列从大到小排完全都枚举可能会超时,所以从小到大排然后把向右的队列从大到小排统计他们之间包含的人的个数然后计算,但是这个思路好像不可行,还没找到为什么错
Q4看了一眼没时间做



最后一题我搁那一直超时不知道为啥
第三题为啥我一直是通过4.35%啊 思路没啥问题啊 样例也过了
草,忘记2是质数了,脑子没转过来,我就说怎么一直有样例没过。。。而且我拿Python、Java、C++挨个把第一题写了一遍,通过率50%,70%,90%,就离谱
第一题是io问题,换成BufferedReader能过
相关推荐
查看17道真题和解析