狗狗new grad技术店面经经经

第一次面狗家 有点慌 面之前刷了好多算法 结果考的是利口要务霸的几乎原题~多次调用的那个,就感觉算法含量比较少呜呜

我记得刷题的时候用了队列 然后就说用队列存多读的东西。小哥说什么什么队列不太好 问我有没有什么其他的数据结构用 我一脸懵逼说队列的操作都是O(1) 还不够好吗?弱弱的问那您有什么推荐 他沉默了一会说先用着队列吧 == 然后码代

码到一半小哥说等一下,参数里面给的buf大小不够咋办?我想了一下说那我们自己建个buf存着,到时候参数要求读多少byte咱给拷贝过去 小哥说可以的你写吧,写完以后问我有没有什么优化的方法,又懵逼了一下,觉得这个时间复杂度没法优化,空间的话我也没想明白怎么优化。后来小哥提示了下可以把两个data structure merge起来 然后我恍然大悟,说真的诶我们不用队列了直接用new buf存多余的东西balabala~ 这时候已经过了半个多小时了 小哥问我有啥问题然后瞎扯了十多分钟结束。

然后心里有点慌慌 不知道是不是自己代码写慢了 感觉小哥是想再做道题的结果没太多时间了 =。= 但感觉他的语气什么的还挺好,可能狗家面试体验都好吧。

哎希望小哥能放我一马放我一马放我一马

发个帖给大家看看 不设置积分了我也知道啥都看不了很心塞。走过路过送点米好不咯 最后祝大家找工作顺利!

问题不大 稳过

真鸡儿难。。。

唔 不是很对 首先read4(prebuf)的时候应该是read(prebuf+count) 这样不会吧之前读到buf里面的东西覆盖(所以你的prebuf的size其实应该设的比较大才行),然后你的读到preSize=0的时候应该break 这样不会无限循环。

反正while里面要考虑(1)是不是read4读到末尾了 break (2)总共几次读出来的东西是不是比n大了(所以要把多余的东西存起来)break (3)读出来的byte还是比n小,继续读。

建议你去利口做做原题 discusssion很多人才der

这就是原题ac的答案了~

你说的点我都做了呢

电面怎么还有题意如此抽象的hard题目

buff 大小不够返回 read 失败比较合理吧

小哥说什么什么队列不太好 问我有没有什么其他的数据结构用…

所以说应该一开始就说用个buf么?什么意思?