在线回合: 有20个基于基本编程、C输出问题和操作系统的MCQ。有两个编程问题。 1 给定一个只有1和0的数组,必须最大化该数组中的1数。 您可以执行最多一次翻转操作,该操作可以应用于一系列连续索引。我使用了类似于最大和连续子数组动态规划的方法。这个问题类似于
2. 你会得到一个链表。对于i=1到n/2,从第i个数中减去第(n-i)个数。最后打印修改后的链表。
技术第一轮: 1. 给定三个数字A、B和M。计算(A*B)%M。 所有数字都在1到10^15的范围内,以防溢出。首先,我给出了一种蛮力方法,每次运行一个循环a,每次在答案中加B,然后取mod。然后,我通过递归计算A*B/2并将其乘以2,将O(n)改进为O(logn)。面试官让我为它写完整的代码。
2. 他问我是否知道trie的数据结构,我说是的,所以他让我写trie的节点结构。我编写了基本的节点结构。然后他问我是否要添加和匹配精确的字符串,然后如何修改节点结构。我告诉他在节点中添加一个布尔值,表示字符串的结尾。然后他让我写完整的代码,在trie root中添加一个字符串。 技术第二轮: 他向我做了介绍,并在之前的采访中问了我一些问题。 1. 给定一棵二叉树,打印该二叉树的边节点。
2.你会得到一系列联系人。每个联系人由3个字符串组成:姓名、电子邮件和电话号码。如果这些参数中的任何一个与任何其他触点的参数匹配,则这两个触点相同。查找具有相同联系人的组。我建议使用一个hashmap,参数字符串作为键,索引作为值。然后,当我们在hashmap中遇到匹配字符串时,连接这两个联系人索引,就像我们在不相交集快速联合方法中所做的那样。最后使用查找操作查找匹配的联系人。
技术第三轮: 这次面试主要基于简历讨论。他问了我的实习和项目,还问了我一些操作系统方面的问题。然后他给了我一道国际象棋题。我的初始位置是8个兵和一个骑士。我必须回答我是否可以使用我的骑士移除所有8个棋子。然后他简化了问题,现在只有一个棋子。我为递归编写了完整的代码来解决这个问题,但时间复杂度是指数级的。然后他问我如何找到移除这枚棋子的最小步骤数。我修改了现有代码,现在返回了许多步骤。
技术第四轮: 这有点像HR回合。起初,他问我最近的实习工作,并从具体问题开始。在我的项目中,我解决的最棘手的挑战是什么?在团队中工作时会遇到什么样的问题?如何解决这些问题?你曾经写过不可维护的代码吗?为什么要写?你有没有想过,你提出了一些好的方法,但却被上级扔进了垃圾桶?你是如何处理的?
如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写评论