推特采访 |设置 1
手机屏幕——我
1.不使用数组的斐波那契数列——这是一个典型的动态编程最喜欢的问题,你会要求不要使用记忆或任何额外的存储来存储先前迭代的值。
(同一问题的更复杂版本:使用维度为 N x N 的二维数组生成第 N 行帕斯卡三角形 w/o)
2. N-ary tree:查找树中是否存在value=x的节点。如果是,则返回 true,否则,返回 false。
手机屏幕 – II
1.找到二叉树的最低共同祖先
答:做了10次🙂解释了如何做!
2.克隆图并分析时间和空间复杂度(因为基于 DFS 的方法以更高的内存为代价利用更短的时间)
public class Node {
public int data;
List neighbhors;
public Node (int data) {…}
setNeighbors(List neighbhors) {…}
}
// HashMap created = new HashMap();
public Node clone(Node oldGraph) {
if (created.get(oldGraph))
return created.get(oldGraph);
Node newGr = new Node(oldGraph.data);
List nbors = new ArrayList();
created.put(oldGraph, newGr);
List adj = oldGraph.getNeighbhors();
for (Node n : adj) {
nbors.add(clone(n));
}
newGr.setNeighbors(nbors);
return newGr;
}
手机屏幕三
设计一个布隆过滤器以从未排序的数组中删除重复项!
现场
1. (类似问题)在一个二维数组(M x N,在给定的前 3×3 中)数字中,找到从指定的原始单元格 (1,0) 到指定的目标单元格的严格递增路径(0, 2)。该数组可能包含重复项,并且该解决方案应该适用于这些重复项。
2.a.为 Twitter 上的每条推文设计一个独特的哈希函数,将其用作服务的一部分。
2.b。查找有向图是否有环。为此编写一个具有布尔返回类型的函数。
3.休闲午餐面试。
4.使用包含字符(a 到 z)和 '*'、'?' 的模式进行模式匹配和 '。'
5.a.描述您将如何进行外部排序 -> 得出一种 map-reduce 解决方案。每台机器有 10M 个号码(总共 100M),总共 10 台机器。每个 m/c 有 20MB RAM 和 50GB 内存。
5.b。 N-Queens 问题:找到并打印所有可能的皇后的非冲突位置。
6.a.给定一个输入二叉树并引用树中的一个节点,找到输入节点的下一个有序后继。如果没有,则输出 null。
6.b。对 k 排序数组进行排序的最佳方法是什么?优化时间复杂度。
(我的提示:使用大小为 k 的优先级队列)
7.a.招聘经理:为a设计服务。耐用性 B.一致性
7.b。解释 C++ 的多重继承问题。
如果您喜欢 GeeksforGeeks 并愿意做出贡献,您还可以撰写文章并将您的文章邮寄至 review-team@geeksforgeeks.org。在 GeeksforGeeks 主页上查看您的文章并帮助其他 Geeks。