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

Software Developer

Expedia Group
upvote
share-icon
3 rounds | 4 Coding problems

Interview preparation journey

expand-icon
Preparation
Duration: 6 months
Topics: Data Structures, Algorithms, System Design, Aptitude, 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: Campus
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
Online Coding Interview
Duration120 minutes
Interview date24 May 2015
Coding problem2

Hello everyone! Expedia came to our campus for full time hiring of final year students. They had shortlisted candidates for the interviews by taking an online test comprised of four sections (Quantitative, C, Logical and English). Every section had a timer attached to it, so you need to think and answer quickly. Although, the questions were easy but cutoff was quite high. This round was followed by a coding round, comprised of two questions.

1. Deletion In Circular Linked List

Easy
30m average time
0/40
Asked in companies
CIS - Cyber InfrastructureMakeMyTripExpedia Group

You are given a Circular Linked List of integers, and an integer, 'key'.

You have to write a function that finds the given key in the list and deletes it. If no such key is present, then the list remains unchanged.

For Example :
This is a visualization of the Circular Linked List, represented by:
1 2 3 4 5 -1

linked_list_1

Note :
The Circular Linked List before/after deletion may happen to be empty. In that case, only print -1.

All integers in the list are unique.


Problem approach

The idea is to use a recursive approach to find the given key and then remove that node. The recursive idea is very clear that we will traverse through the circular linked list, and we will check if the value of the node is equal to the given key. 
 

We will define a function deleteNodeHelper(root, key, head) to remove the key in which the head is the starting node of the linked list, and we will send root as the next node of the head node.   
 

Working of the Recursive function: 

 

  1. If the root is equal to head, then we have traversed the whole linked list and have not found the given key. So, we will return head. This will act as the base case of the recursive function.
  2. We will check if the value of the node is equal to the key. We have found the node with the given key, and we have to remove this node. So, we will return the next node of the root.
  3. Now, we have to make a recursive call to check all nodes of the remaining linked list. We will set the next node of the root as deleteNodehelper(next, key, head), where next is equal to the next node of root.
  4. In the end, we will return the current node root.
Try solving now

2. Page Faults

Moderate
30m average time
70% success
0/80
Asked in companies
Expedia GroupAdobeMicrosoft

In computing, a page fault is an exception for the memory management unit (MMU) when a process accesses a memory page without proper preparations.


Page replacement algorithm is needed to decide which page needs to be replaced when the new page comes in. Whenever a new page is referred to and is not present in memory, the page fault occurs, and the Operating System replaces one of the existing pages with a newly needed page.


You have given a sequence of pages in an array ‘Pages’ of length ‘N’ and memory capacity ‘C’. You have to find the number of page faults using the Least Recently Used (LRU) Algorithm. Initially, memory doesn't contain any pages.


For example:
'N' = 7, 'C' = 4, pages = [1, 2, 1, 4, 2, 3, 5].

For the first four pages, memory allocated with four pages, {1, 2, 1, 4}, page fault = 3.

For fifth, page number 2 is required, which is already present, page fault = 3.

Then, page number 3 is required, replaces LRU 2, page fault = 4.

Then, page number 5 is required, replaces LRU 1, page fault = 5.

The total page fault is 5.
Problem approach

Approach: According to LRU, if the page we need is not present in the set of pages, the page fault occurs, and we replace the least recently used page with the current page. And if the page is present, we just use it, and no page fault occurs.

 

Algorithm: 

  • Create a variable ‘ans’ and initialize it to 0.
  • Create an empty vector ‘currentPages’.
  • Iterate using a for loop from i = ‘0’ to ‘N - 1’.
    • If Pages[i] in ‘currentPages’.
      • Remove Pages[i] from ‘currentPages’.
      • Append Pages[i] to ‘currentPages’.
    • Else.
      • Increment ‘ans’ by 1.
      • If currentPages.size() == C.
        • Remove currentPages[0] from ‘currentPages’.
      • Append Pages[i] to ‘currentPages’.
  • Print ‘ans’.
Try solving now
02
Round
Easy
Face to Face
Duration60 minutes
Interview date27 May 2015
Coding problem2

The man who was taking my first round was my alumni. He started-off by asking my introduction and then gave me 2 programming questions to code. He then navigated on to my Codechef profile and asked a question that I did in the June 14 Long Contest. I explained him and he was satisfied. 
Tips : You don’t have to answer the stuffs quickly, rather you need to develop some test cases and have some discussion regarding the structure of the problem, and then answer.

1. Cycle Detection in a Singly Linked List

Moderate
15m average time
80% success
0/80
Asked in companies
Morgan StanleyDunzoOYO

You are given a Singly Linked List of integers. Return true if it has a cycle, else return false.


A cycle occurs when a node's next points back to a previous node in the list.


Example:
In the given linked list, there is a cycle, hence we return true.

Sample Example 1

Problem approach

Floyd's algorithm can be used to solve this question.
Define two pointers slow and fast. Both point to the head node, fast is twice as fast as slow. There will be no cycle if it reaches the end. Otherwise, it will eventually catch up to the slow pointer somewhere in the cycle.
Let X be the distance from the first node to the node where the cycle begins, and let X+Y be the distance the slow pointer travels. To catch up, the fast pointer must travel 2X + 2Y. L is the cycle size. The total distance that the fast pointer has travelled over the slow pointer at the meeting point is what we call the full cycle.
X+Y+L = 2X+2Y
L=X+Y
Based on our calculation, slow pointer had already traveled one full cycle when it met fast pointer, and since it had originally travelled A before the cycle began, it had to travel A to reach the cycle's beginning! 
After the two pointers meet, fast pointer can be made to point to head. And both slow and fast pointers are moved till they meet at a node. The node at which both the pointers meet is the beginning of the loop.
Pseudocode :
detectCycle(Node *head) {
Node *slow=head,*fast=head;

while(slow!=NULL && fast!=NULL && fast->next!=NULL) {

slow = slow->next; 
fast = fast->next->next; 

if(slow==fast) 
{
fast = head;
while(slow!=fast) 
{

slow = slow->next;
fast=fast->next;
}
return slow;

}

}

return NULL; }

Try solving now

2. Closest Sum

Moderate
30m average time
70% success
0/80
Asked in companies
AmazonMicrosoftAcko

Given an array 'ARR'' of 'N' integers and an integer 'target', your task is to find three integers in 'ARR' such that the sum is closest to the target.

Note
In the case of two closest sums, print the smallest sum.
Problem approach

Concept of sorting can be applied here.
1. Sort the array.
2. Maintain two indexes one at beginning (l=0) and one at end (r=n-1). 
3. Now, traverse the array until l 3.1 Calculate sum of arr[l] + arr[r]
3.2 if abs (sum) < abs (minimum sum), then update the minimum sum and pair.
3.3 If sum < 0, this means if we want to find sum close to 0, do l++
3.4 If sum is greater than 0,this means if we want to find sum close to 0 , do r--.
The minimum sum will store the sum closest to zero. 

Time Complexity : O(nlogn)

Try solving now
03
Round
Easy
HR Round
Duration30 minutes
Interview date27 May 2015
Coding problem0

HR interview that lasted for 30 minutes. The interviewer asked me questions to know more about me.
Tip : The whole process is quite lengthy and one needs to have a sound sleep before interview. Moreover, you need to be more than technical in order to crack Expedia.

Here's your problem of the day

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

Skill covered: Programming

How do you remove whitespace from the start of a string?

Choose another skill to practice
Similar interview experiences
company logo
SDE - Intern
2 rounds | 4 problems
Interviewed by Expedia Group
451 views
0 comments
0 upvotes
company logo
SDE - Intern
3 rounds | 5 problems
Interviewed by Expedia Group
579 views
0 comments
0 upvotes
company logo
SDE - Intern
2 rounds | 4 problems
Interviewed by Expedia Group
809 views
0 comments
0 upvotes
company logo
SDE - Intern
2 rounds | 3 problems
Interviewed by Expedia Group
865 views
0 comments
0 upvotes
Companies with similar interview experiences
company logo
Software Developer
5 rounds | 14 problems
Interviewed by Microsoft
4029 views
1 comments
0 upvotes
company logo
Software Developer
6 rounds | 12 problems
Interviewed by SAP Labs
2912 views
0 comments
0 upvotes
company logo
Software Developer
3 rounds | 3 problems
Interviewed by Amazon
1270 views
0 comments
0 upvotes