📜  远足采访经验|套装5

📅  最后修改于: 2021-05-05 00:57:25             🧑  作者: Mango

第一轮
1.实施过期缓存系统:缓存中的每个页面都有id和过期时间(TTL为几秒钟)。页面过期后,它表现为可用空间,可用于新页面/替换。进行了长时间的讨论。

第二回合
很无聊
1.二叉树中给定距离的节点
2.检查N元树中的Mirror
3.最大总和连续子数组
第三回合
很无聊
1.逐行遍历
2.锯齿形遍历树
3.在旋转阵列中搜索
4.值等于指标值
终于有新东西了。
5.给定一个排序数组,说A:(-4,-2,0,1,4,6,8,10)。有一个函数f(x)= a * x ^ 2 + b * x + c,将该函数应用于A,其中x是数组A中的第ith个元素,而a,b,c属于实数集。将对f(A)进行排序,如果不排序,则将其按O(n)排序。
如果您仍然记得数学中的二次方程式的概念,这将非常容易。我不记得了,所以他帮了我。
逻辑上,任何二次方程都由图上的抛物线表示,并且图的最小值在dy / dx = 0时,即2 * a * x + b = 0。的价值计算x = -b /(2 * a)的值。在排序数组中找到它或在日志n中找到它的上限。从此点开始到两端,执行合并排序。

第四回合
1.实现LRU缓存
2.实施以下步骤。
有三种类型的请求:
i)www.someurl.com/conn_id=?& timeout = ? -:对于此conn_id,您将等待超时秒,然后在返回响应之后,与此同时,您可以收到更多三种类型中的任何一种的请求
ii)www.someurl.com/stat/-:返回所有等待超时的ID及其剩余的超时间隔
ii)www.someurl.com/kill/conn_id=? -:结束此conn_id的等待超时,并为此conn_id返回响应

我给了堆解决方案。他问当一个请求正在等待timout,同时又有新请求出现时,该如何处理案件。在这种情况下,如何进行服务器端可伸缩性。

3.他询问了我目前正在从事的工作和技术。我说过Java,Spring MVC用于后端,而html,css,JavaScript用于前端,突然他问Java和javascript有什么区别。当时不知道。 Javascript也是一种面向对象的语言,可以在服务器端像node js一样使用。仍然有很多差异。

相关实践问题

两棵镜树
逐行遍历级别顺序
二叉树中给定距离的节点
LRU缓存
在旋转阵列中搜索
螺旋形式的水平阶遍历
卡丹算法
远足的所有练习题!