面经:Bloomberg Internship第一轮

上来先问了一个系统设计的问题,一个front end, 一个back end。 front end有很多UI,一个UI对10个多customers,back end有许多processor,或者processor有多个进程、线程。问应该怎么设计这个并行分布运算的系统,才能让独立的任务得到优化。

完全那这个系统设计没有办法,需要有相应的经验才能答这种题。不知道为什么new grad也要问系统设计

这其中问了一些父子进程、线程各自的优劣

第一个算法题是给个String,比如AABBBCCCDD,问怎么压缩比较好。我给了一种方案A2B3C3D2,并用StringBuffer。这里经验来了:最好能跟考官说:Let me think for a while,然后给一个比较好的答案,然后写的时候前面的空留大一点。我写完之后,他说并不是所有情况都优化,问哪些情况不优,我说比如ABCDEFG这种情况,他问怎么改,我说如果accumulate number是1的话,就不要把数字加到Stringbuffer里面了。

期间还问了为啥要用StringBuffer, String 为什么immutable

另一道题是链表,问怎么删除链表某个节点,然后问如果只have access to这个节点,怎么删掉它,如果这个节点是最末一个节点怎么办。都是很基础的问题

原文地址:https://www.cnblogs.com/EdwardLiu/p/3990480.html