Adobe Systems (MTS-2) [Aug 2019] [Offered]
Summary
I interviewed for the MTS-2 role at Adobe Systems in Noida, India, in August 2019, after being referred by a friend. The process involved five comprehensive rounds focusing on projects and diverse problem-solving, and I ultimately received an offer.
Full Experience
My interview experience for the MTS-2 role at Adobe Systems in Noida, India, was quite positive, with very friendly interviewers throughout. I was referred by a friend for this position.
Round 1 (40-50 min)
- The round started with a discussion about my projects.
- I was given a problem: Given an mn matrix and q queries (a b c d, where (a,b) are top-left and (c,d) are bottom-right coordinates), find the sum of elements in the rectangle for each query.
- Another problem involved a factory with 10 machines, all producing 100g balls except one defective machine producing 90g balls. I had to find the minimum weighings required to identify the defective machine using a weighing machine.
Round 2 (40-50 min)
- Again, the round began with a discussion about my projects.
- I was asked to find the next largest N-bit binary number with the same number of set bits as the original (e.g., 101 -> 110).
- A problem involved rearranging an array of 2n numbers (a1...an, b1...bn) into a1,b1,a2,b2,...an,bn without using extra space.
- There were conceptual questions: What is a constructor? What is a destructor? Follow-up: How to keep track of live objects of a class without using global variables.
- Another array manipulation problem: Given an array a1...an and an index i (1 <= i <= n), reverse the array around that index in-place (e.g., a1..a6, i=3 -> a4,a5,a6,a1,a2,a3).
Round 3 (40-50 min)
- This round also started with a discussion about my projects.
- I was tasked with a problem: Given a binary search tree, multiply all elements by -1, and then arrange the elements to again form a binary search tree.
- I was asked to list all sorting algorithm names and their time complexities. The follow-up question was: Given N sorted elements and M elements being added (M << N), which sorting algorithm would I prefer and why?
Round 4 (40-50 min)
- The first part of this round was a discussion about my projects.
- I was given a binary tree problem: Remove all nodes whose subtree has a sum less than K.
- Another problem involved finding the maximum number of gems I could collect from 'n' hills, where the i-th hill has 'ai' gems, and I couldn't collect from adjacent hills.
- A classic brain teaser: 100 ants are sprinkled on a rod, moving at 1 m/s and reversing direction on collision. Find the total time after which all ants will fall from the rod.
Round 5 (10-15 min)
- The final round was short and focused on a single problem: Write a mathematical expression to find the average of 4 integer numbers, avoiding integer overflow and only returning the integer part of the average (e.g., 3,3,4,3 -> 3).
Interview Questions (12)
Given an m*n matrix and q queries. Each query is of the format 'a b c d', where (a,b) are top-left coordinates and (c,d) are bottom-right coordinates. For each query, find the sum of elements within the rectangle bounded by these coordinates.
A factory has 10 machines, each producing balls weighing 100g. One machine is defective and produces balls weighing 90g. Given a weighing machine, what is the minimum number of weighings required to find the defective machine?
Given an N-bit binary number, find the next largest binary number that has the same number of set bits as the original number. For example: 101 --> 110.
Given an array of 2*n numbers in the format a1,a2,....an,b1,b2,....bn. Rearrange the elements of the array to be a1,b1,a2,b2,a3,b3,.....an,bn, without using extra space.
Explain what a constructor is and what a destructor is. As a follow-up, how would you keep track of live objects of a class without using global variables?
Given an array a1,a2,......an and an index 1 <= i <= n. Reverse (or rotate) the array around that index. For example, if the array is a1, a2, a3, a4, a5, a6 and i = 3, the output should be a4, a5, a6, a1, a2, a3. The operation must be done without using extra space.
Given a binary search tree, multiply all its elements by -1. Then, rearrange the elements to form a new binary search tree.
List all common sorting algorithms and their time complexities. As a follow-up, if you have N sorted elements and M new elements are added (where M is much smaller than N), which sorting algorithm would you prefer to re-sort the array, and why?
Given a binary tree. Remove all nodes whose subtree has sum less than K.
There are 'n' hills on a mountain, and the i-th hill contains 'ai' gems. You can collect all gems from a hill, but you cannot collect gems from adjacent hills. Find the maximum number of gems you can collect.
100 ants are sprinkled on a rod. Ants can move at a speed of 1 m/s. Ants have a peculiar property: they reverse their direction upon collision. Find the total time after which all ants will fall from the rod.
Write a mathematical expression to find the average of four integer numbers, ensuring integer overflow is avoided. Only the integer part of the average is required. For example, for 3, 3, 4, 3, the average is 3.