📜  Sprinklr 前端工程师面试经验 |校外

📅  最后修改于: 2022-05-13 01:58:40.501000             🧑  作者: Mango

Sprinklr 前端工程师面试经验 |校外

通过 LinkedIn 联系了招聘人员。然后他在聊天中添加了另一个 HR-Recruiter,然后我与 HR 分享了我的简历。

第 1 轮(电话会议):

同一个 HR 打电话给我,询问我的兴趣和经历。然后她问我,为什么我毕业后没有加入公司,从那之后已经过去了 8 个月:我回答说,我忙着磨练我的 DS Algo 和学习全栈开发,现在我在全球排名第 39在 Interviewbit 上连续 171 天。然后她问我对 Angular 的了解:我告诉她我在 React 方面的经验,以及对 Angular 的一点熟悉。然后她告诉我不要担心,让我的面试官知道我知道 React 并且渴望学习 Angular。然后她建议我修改 HTML、CSS、JavaScript 等基础知识,并要求为 F2F 安排一个舒适的日期,我说明天。一个小时后,我收到了第二天F2F的日历邀请,我接受了。

第 2 轮(F2F):

一位高级软件工程师采访了我。他来了,直接给了我一个问题:
1.链表循环检测。
我给出了最佳方法,然后他转向另一个问题。
2. 假设有一个像亚马逊这样的电子商务网站,我们有不同的类别,如电子、美容、厨房等。现在每个类别都有按折扣降序排序的对象集合。所以,我们要退回 K 最多打折的商品。例如,对于 K=3,并且集合具有 N 个类别,如下所示:
{
“电子产品”:[{名称:“MacBook Air”,价格:“55000”,折扣:“50%”},{名称:“MacBook Pro”,价格:“95000”,折扣:“40%”},... ],
“美容”:[{名称:“飞利浦修剪器”,价格:“2500”,折扣:“60%”},{名称:“戴森吹风机”,价格:“25000”,折扣:“20%”}, …],
“厨房”:[{名称:“Kaff Sink”,价格:“7700”,折扣:“30%”},{名称:“米尔顿火锅”,价格:“900”,折扣:“30%”}, …],

}
输出:[“飞利浦修剪器”、“MacBook Air”、“MacBook Pro”]。
我给出了基于最大堆的方法,我告诉他将每个项目插入最大堆,然后返回前 K。为此,他问时间复杂度,我回答 O(Klog(K*N) )。他告诉我进一步优化它。这次我给出了一个基于指针的方法,即在每个类别上设置一个指针,然后检查其中的最大值,然后增加找到最大值的类别的指针的计数,直到找到K个元素.为此,他问时间复杂度,我回答 O(K*N)。他告诉我通过结合上述两种方法来进一步优化它,我做到了,并给出了时间复杂度为 O(Klog(N))。
3. 他询问了React 中的生命周期钩子
4. 他向我展示了一个实时网络应用程序,并在查看代码后询问了性能问题(如果有的话?)。问题在于未优化从数组加载内容。
5. 然后他问我,看我的简历中提到的板球,我会打板球吗?并做了一些关于板球的非正式会谈。

第三轮(F2F):

一位高级软件工程师采访了我。问了我以下问题:
1.括号字符串中最长的平衡括号。
我花了一段时间,但回答了基于堆栈的解决方案。
2.最长回文子序列。
我也花了一段时间,但在一些提示后给出了正确的方法。我的方法是递归的,我正在尝试 DP,但我无法获得。
3.二叉树的最短根到叶路径。
他问了这个简单的问题来减轻我的情绪,因为在两个 LeetCode 难题之后我几乎感到沮丧。我给出了递归解决方案。然后他转投 JavaScript,至于我申请的职位,JavaScript 知识很重要。
4.在 HTML 中在哪里添加 script 标签?
我回答了头部和身体中的任何一个。当您知道需要预先加载 JavaScript 时插入头部。否则总是插入身体底部。它给人一种快速加载的错觉,因为内容首先加载,然后是 JavaScript。
5.当我们在浏览器中输入 URL 时会发生什么?
我使用缓存、DNS 查找、请求、响应、确认、TCP/IP 协议、POST/GET 请求等给了他详细的答案。
6. JavaScript 中 var、const 和 let 的区别。
用很多例子回答它并描述了它们的范围和行为,还将它们与 C++ 变量进行了比较。

等待下一轮……