I applied through a recruiter. The process took 3 weeks. I interviewed at Wayfair (Bengaluru) in Aug 2024
Interview
I had 4 interviews
1st (Elimination Round) - Technical Case Study
2nd (Part of Interview Loop) - Technical Case Study
3rd (Part of Interview Loop) - Technical Case Study
4th Round - DSA
Interview questions [5]
Question 1
Technical Case Study on Search Query (on Wayfair platform) classification
Technical Case Study on Probabilistic Device Graph i.e. to identify whether a partiular unrecognised device belong to a particluar register user or not
Each day a quarry-worker is given a pile of stones and told to reduce the larger stones into smaller ones. The worker must smash the stones together to reduce them, and is told to always pick up the largest two stones and smash them together. If the stones are of equal weight, they both disintegrate entirely. If one is larger, the smaller one is disintegrated and the larger one is reduced by the weight of the smaller one. Eventually, there is either one stone left that cannot be broken, or all of the stones have been smashed. Determine the weight of the last stone, or return O if there is none.
Example
weights = [1,2,3,6,7,7].
The worker always starts with the two largest stones. In this case, the two largest stones have equal weights of 7 so they both disintegrate when smashed. Next the worker smashes weights
3 and 6. The smaller one is destroyed and the larger weighs 6 - 3 = 3 units. Then, weights 3 and
2 are smashed together, which leaves a stone of weight 1. This is smashed with the last remaining stone of weight 1. There are no stones left, so the remaining stone weight is 0.
Function Description
Complete the function lastStoneWeight in the editor below. The function must return an integer that denotes the weight of the last stone, or 0 if all stones shattered into dust.
lastStoneWeight has the following parameter(s):
int weights[n]: an array of integers indicating the weights of each stone
Constraints
• 1 5n≤ 105
• 1 ≤ weights[i] ≤ 109
A start-up owner is looking to meet new investors to get some funds for the company. Each investor has a tight schedule that the owner has to respect. Given the schedules of the days investors are available, determine how many meetings the owner can schedule. Note that the owner can only have one meeting per day.
The schedules consist of two integer arrays: firstDay, and lastDay, aligned by index. Each element in the array firstDay represents the first day an investor is available, and each element in lastDay represents the last day an investor is available, both inclusive.
Example:
firstDay = [1,2,3,3,3]
lastDay= [2,2,3,4,4]
• There are 5 investors [I-0, 1-1, I-2, I-3, 1-4]
• The investor I-0 is available from day 1 to day 2 inclusive [1, 2]
• The investor I-1 is available in day 2 only [2, 2]. The investor 1-2 is available in day 3 only [3, 3]
• The investors I-3 and I-4 are available from day 3 to day 4 only [3, 4]
• The owner can only meet 4 investors out of 5: I-0 in day 1, 1-1 in day 2, 1-2 in day 3 and I-3 in day 4.
Function Description
Complete the function countMeetings in the editor below.
countMeetings has the following parameters:
int firstDayIn]: firstDaytil is the first day the ith investor is available to meet. int lastDayIn]: lastDayli] is the last day the ith investor is available to meet.
Returns:
int: the maximum number of meetings possible
Constraints
• 1 ≤ n ≤ 105
• 1 s firstDayli], lastDayli] ≤ 105 (where 0 ≤ i < n)
• firstDayli] ≤ lastDayli] (where 0 ≤ i < n)