MakeMyTrip interview experience Real time questions & tips from candidates to crack your interview

Software Developer

MakeMyTrip
upvote
share-icon
3 rounds | 9 Coding problems

Interview preparation journey

expand-icon
Preparation
Duration: 6 months
Topics: Javascript, Ajax, Angular JS, Jquery, Data Structures, Algorithms, System Design, OOPS
Tip
Tip

Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.
Tip 3 : Do at-least 2 good projects and you must know every bit of them.

Application process
Where: Referral
Eligibility: Above 7 CGPA
Resume Tip
Resume tip

Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.

Interview rounds

01
Round
Easy
Face to Face
Duration60 minutes
Interview date10 Apr 2015
Coding problem3

Technical round with 3 problems based on DSA and Algorithms.

1. Find Smallest Integer

Moderate
10m average time
90% success
0/80
Asked in companies
DelhiveryUberMakeMyTrip

You are given an array 'ARR' consisting of 'N' positive numbers and sorted in non-decreasing order, and your task is to find the smallest positive integer value that cannot be represented as a sum of elements of any proper subset of the given array.

An array 'B' is a subset of another array 'A' if each element of 'B' is present in 'A'.

For example:
For the given input array [1, 1, 3],
1 can be represented as the sum of elements of the subset [1],
2 can be represented as the sum of elements of a subset [1, 1],
3 can be represented as the sum of elements of a subset [3],
4 can be represented as the sum of elements of a subset [1, 3],
5 can be represented as the sum of elements of a subset [1, 1, 3]
So, the smallest positive integer value that cannot be represented as a sum of elements of any subset of a given array is 6.
Problem approach

The Brute force approach would be to find the sum of all the possible subsets and then compare sum with the sum of remaining elements.
A better approach would be to sort the array in descending order and then take the largest elements. Now, take elements from the largest, until we get strictly more than half of total sum of the given array. As soon as the current sum is greater than half of the total sum of the given array, return the subset so far.

Try solving now

2. Reverse Linked List

Moderate
15m average time
85% success
0/80
Asked in companies
IBMQuikrMicrosoft

Given a singly linked list of integers. Your task is to return the head of the reversed linked list.

For example:
The given linked list is 1 -> 2 -> 3 -> 4-> NULL. Then the reverse linked list is 4 -> 3 -> 2 -> 1 -> NULL and the head of the reversed linked list will be 4.
Follow Up :
Can you solve this problem in O(N) time and O(1) space complexity?
Problem approach

This can be solved both: recursively and iteratively.
The recursive approach is more intuitive. First reverse all the nodes after head. Then we need to set head to be the final node in the reversed list. We simply set its next node in the original list (head -> next) to point to it and sets its next to NULL. The recursive approach has a O(N) time complexity and auxiliary space complexity.
For solving the question is constant auxiliary space, iterative approach can be used. We maintain 3 pointers, current, next and previous, abbreviated as cur, n and prev respectively. All the events occur in a chain.
1. Assign prev=NULL, cur=head .
2. Next, repeat the below steps until no node is left to reverse:
1. Initialize n to be the node after cur. i.e. (n=cur->next)
2. Then make cur->next point to prev (next node pointer).
3. Then make prev now point to the cur node.
4. At last move cur also one node ahead to n.
The prev pointer will be the last non null node and hence the answer.

Try solving now

3. Smallest Window

Moderate
10m average time
90% success
0/80
Asked in companies
ArcesiumReliance Jio Infocomm LtdGoldman Sachs

You are given two strings S and X containing random characters. Your task is to find the smallest substring in S which contains all the characters present in X.

Example:

Let S = “abdd” and X = “bd”.

The windows in S which contain all the characters in X are: 'abdd', 'abd', 'bdd', 'bd'. 
Out of these, the smallest substring in S which contains all the characters present in X is 'bd'. 
All the other substring have a length larger than 'bd'.
Problem approach

The naïve approach is to generate all substrings of string1 and for each substring, check whether the substring contains all characters of string2. Finally, print the smallest substring containing all characters of string2.

The efficient solution is to use hashing. First check if the length of the string is less than the length of the given pattern, if yes then no such window can exist . Next, store the occurrence of characters of the given pattern in a array. Now use two pointer technique :
1. Start matching the characters of pattern with the characters of string , keep incrementing count if a character matches.
2. Check if (count == length of pattern string), if it matches then this means a window is found.
3. If such a window is found, try to minimize it by removing extra characters from the beginning of the current window.
4. Delete one character from first and again find this deleted key at right, once found apply step 2.
5. Update minimum length.
At last, print the minimum length window.

Try solving now
02
Round
Easy
Face to Face
Duration60 minutes
Interview date10 Apr 2015
Coding problem3

Technical round with questions based on OOPS and Angular.

1. OOPS Question

What are the different OOPS concepts?

Problem approach

The building blocks of OOPs are : 
1. Classes & Objects : An Object can be defined as an entity that has a state and behavior. Class is basically a collection of objects which act as building blocks. 
2. Abstraction : It helps in displaying the essential features without showing the details or the functionality to the user. It avoids unnecessary information or irrelevant details and shows only that specific part which the user wants to see.
3. Encapsulation: The wrapping up of data and functions together in a single unit is known as encapsulation. It can be achieved by making the data members' scope private and the member function’s scope public to access these data members.
4. Inheritance: Inheritance is the process in which two classes have an is-a relationship among each other and objects of one class acquire properties and features of the other class. The class which inherits the features is known as the child class, and the class whose features it inherited is called the parent class.
5. Polymorphism: Polymorphism is defined as the ability to take more than one form. It is a feature that provides a function or an operator with more than one definition. It can be implemented using function overloading, operator overload, function overriding, virtual function

2. OOPS Question

Given two classes C1 and C2 which are almost same.(remember not exactly same). You want to choose best among these classes so that it can be use as key in hash map. What question will you ask regarding two classes C1 and C2.

3. Technical Question

What is Lazy Loading? What are its advantages and disadvantages?

Problem approach

Lazy loading is a strategy to identify resources as non-blocking (non-critical) and load these only when needed. It's a way to shorten the length of the critical rendering path, which translates into reduced page load times.Lazy loading can occur on different moments in the application, but it typically happens on some user interactions such as scrolling and navigation.

Advantages of Lazy loading:
1. On-demand loading reduces time consumption and memory usage thereby optimizing content delivery. As only a fraction of the web page, which is required, is loaded first thus, the time taken is less and the loading of rest of the section is delayed which saves storage. All of this enhances the user’s experience as the requested content is fed in no time.
2. Optimal usage of time and space resources makes it a cost-effective approach from the point of view of business persons. 

Disadvantages of Lazy loading:
1. Firstly, the extra lines of code, to be added to the existing ones, to implement lazy load makes the code a bit complicated.
2. Secondly, lazy loading may affect the website’s ranking on search engines sometimes, due to improper indexing of the unloaded content.

03
Round
Easy
Face to Face
Duration60 minutes
Interview date10 Apr 2015
Coding problem3

Questions based on System Design, ajax, jquery were asked.

1. System Design Question

Design a traffic light system.

Problem approach

Tip 1: Firstly, remember that the system design round is extremely open-ended and there’s no such thing as a standard answer. Even for the same question, you’ll have a totally different discussion with different interviewers.
Tip 2:Before you jump into the solution always clarify all the assumptions you’re making at the beginning of the interview. Ask questions to identify the scope of the system. This will clear the initial doubt, and you will get to know what are the specific detail interviewer wants to consider in this service.
Tip 3 : Design your structure and functions according to the requirements and try to convey your thoughts properly to the interviewer so that you do not mess up while implementing the idea .

2. Technical Question

How ajax works?

Problem approach

1. An event occurs in a web page (the page is loaded, a button is clicked). 
2. An XMLHttpRequest object is created by JavaScript.
3. The XMLHttpRequest object sends a request to a web server.
4. The server processes the request. 
5. The server sends a response back to the web page.
6. The response is read by JavaScript.
7. Proper action (like page update) is performed by JavaScript.

3. Technical Question

Difference between angular js and jquery.

Problem approach

1. jQuery is a Java script-based library. Angular is a Typescript-based, front-end development framework. 
2. jQuery is used for DOM manipulation. Angular is used for creating single-page applications.
3. jQuery is suitable for small size projects. Angular is suitable for large, complex projects.
4. jQuery is simple and easy to learn. Angular is comparatively tougher to comprehend.
5. jQuery is unidirectional. Angular is bi-directional (supports two-way data binding).

Here's your problem of the day

Solving this problem will increase your chance to get selected in this company

Skill covered: Programming

What is recursion?

Choose another skill to practice
Similar interview experiences
company logo
Software Developer
4 rounds | 8 problems
Interviewed by MakeMyTrip
1414 views
0 comments
0 upvotes
company logo
SDE - 1
4 rounds | 13 problems
Interviewed by MakeMyTrip
1443 views
0 comments
0 upvotes
company logo
SDE - 1
3 rounds | 6 problems
Interviewed by MakeMyTrip
1144 views
0 comments
0 upvotes
company logo
Software Engineer
3 rounds | 7 problems
Interviewed by MakeMyTrip
797 views
0 comments
0 upvotes
Companies with similar interview experiences
company logo
Software Developer
5 rounds | 14 problems
Interviewed by Microsoft
3931 views
1 comments
0 upvotes
company logo
Software Developer
6 rounds | 12 problems
Interviewed by SAP Labs
2806 views
0 comments
0 upvotes
company logo
Software Developer
3 rounds | 3 problems
Interviewed by Amazon
1133 views
0 comments
0 upvotes