D.E. Shaw held an on-campus recruitment drive in my college for the position of QTE intern (2 months)
There were three rounds for the selection process :
Round 1(Technical Test-95 minutes on HackerRank): There were a total of three sections in this test.
The first section comprised of 14 Aptitude MCQs of easy to medium level difficulty to be completed in 28 minutes.
The second section is comprised of 12 Technical MCQs related to finding errors in the logic of C++ codes, guess the output of the code questions, DBMS, SQL, and related concepts to be completed in 17 minutes.
The third was a coding section which had two coding questions, with 20 minutes and 30 minutes for the first and second questions respectively. The two questions were : (i) Given an array of n integers, you can divide the array into sections containing k elements each (n is divisible by k). The score of each section is the product of the elements in that section. Find the maximum sum of scores of all sections that you can achieve. (Greedy) (ii) Given that you have three items A, B, and C that you need to put them in a particular order such that there are no three consecutive same items. Given n queries of the form (a, b, c) where a, b and c are the number of items A, B, and C that you have, find the maximum number of A, B, and C items that you can order by following the above constraint. (Math, the constraints were low)
Round 2(Technical Interview Round 1-60 minutes on Hacker Rank Code Pair): There were two interviewers, both of whom introduced themselves and told about their work in the company. After this, they asked for my introduction. The summary of the questions asked is :
. He asked me to explain my approach first, and when he was satisfied with it, asked me to write code for that and checked it on two test cases.
Two puzzles were asked : (i) There are two traffic lights between your house and office. While going from your house to the office, you stop two times but while returning home from the office you stop only once. Given that the traffic lights are always red whenever you encounter them, how is this situation possible. He asked me to draw and explain my solution properly. (Hint: You don’t need to stop in a traffic light when you need to turn left). (ii) There is a 100-floor building and you have one egg. You need to find the lowest floor from which the egg breaks on dropping. ( The only solution is where we throw the egg starting from the lowest floor and go upwards until it breaks, this cannot be further optimized as we have only one egg).
Given a linked list and a node, how will you delete that node from the linked list? He asked me to explain my approach when I had a pointer to the start of the linked list as well as when I only had the pointer to the node to be deleted.
Which data structure can be used to implement LRU Cache.
Given an integer n you can perform the following two operations any number of times : (i) decrement n by 1 or (ii) divide n by any of its factors except self. Find the minimum number of operations to convert n to 0.
Round 3(Technical Interview Round 2-60 minutes on HackerRank Code Pair): There were two interviewers again. They started by asking for my introduction and what my aspirations were, and how did it align with the QTE intern position that they are offering. The summary of the other questions is :
. He wanted the O(n) time and O(1) space complexity two-pointers solution and asked me to write the code after I finished explaining my approach and asked me to check the code on different test cases by myself.
. He asked me to dry run my stack approach on two test cases.
. I gave a multiset approach, but he wanted a faster approach and gave me a hint to use a stack.
Given a binary tree, first, print its left side view then its right side view. Print the root node only once. He just wanted the approach and time complexities and asked me to dry run my approach and explain in detail for two test cases.
You are given a function getManager(int id) which returns the manager of the employee whose id is passed. You need to implement a function getCManager(int id1, int id2) which should return the lowest common manager of the two employees whose id is passed. You are not provided with the actual tree structure, only the getManager function. My approach was that we could make a pseudo tree and perform LCA on it for these two employees, but he wanted a better approach. Next, I suggested using an unordered_set to store all the managers of one of the employees and then checking if the consecutive managers of the other employee are in the set. He was satisfied with this approach and asked me what test cases would I check for if I had to test an already implemented getCManager function and helped me along the way when I forgot to mention one or two test cases.
Verdict – Selected
After each round, you can ask any questions that you may have to the interviewers.
All the best!