Airbnb Software Engineer Onsite Coding Questions
47+ questions from real Airbnb Software Engineer Onsite Coding rounds, reported by candidates who interviewed there.
What does the Airbnb Onsite Coding round test?
The Airbnb onsite coding round is the core technical evaluation. Software Engineer candidates typically see 2-3 algorithm and data structure problems. Problems range from medium to hard difficulty, and interviewers evaluate both correctness and code quality.
Top Topics in This Round
Airbnb Software Engineer Onsite Coding Questions
Airbnb and DoorDash Senior Software Engineer Interview Experience
I used to read a lot of job search posts when I was struggling, so sharing mine after finally signing an offer (One offer from my dream company Airbnb, one from Doordash, and a few from other smaller
Airbnb onsite
Totally bombed this question. Feeling embarassed. Anyone know the solution to this ? given a list of menu items, how would you pick the most cost optimal option - [8.0...
Airbnb | Onsite | Rooms and keys II
We are given a 2D maze that\'s composed of rooms. We can move from one room to another neighbouring room in all four directions (L,U,R,D). The starting position in the...
Airbnb | Onsite | Check if thief can get from bottom to top without triggering any sensors
You are a thief standing in a room. The room has length L and width W. Your goal is to go from the bottom wall to anywhere on the top...
I\'m sure everyone remembers the classic Trapping Rain Water (https://leetcode.com/problems/trapping-rain-water/) Well here is an interesting twist. Let\'s say you have been given a set of heights representing the heights of buildings....
Airbnb onsite [Reject]
Great experience despite outcome. They showed me around and had a room for me, with my name handwritten on a whiteboard and a schedule printed out. - Two coding rounds - a) Find...
Airbnb | Onsite | Sliding puzzle
Given below 3x3 matrix, solve it. 1|2|3 -+-+- 4|5|6 -+-+- |8|7 Appreciate if you could provide code for DFS or BFS https://leetcode.com/problems/sliding-puzzle
#1235 Maximum Profit in Job Scheduling
LeetCode #1235: Maximum Profit in Job Scheduling. Difficulty: Hard. Topics: Array, Binary Search, Dynamic Programming, Sorting. Asked at Airbnb in the last 6 months.
LeetCode #631: Design Excel Sum Formula. Difficulty: Hard. Topics: Array, Hash Table, String, Graph Theory, Design, Topological Sort, Matrix. Asked at Airbnb in the last 6 months.
#638 Shopping Offers
LeetCode #638: Shopping Offers. Difficulty: Medium. Topics: Array, Dynamic Programming, Backtracking, Bit Manipulation, Memoization, Bitmask. Asked at Airbnb in the last 6 months.
#1298 Maximum Candies You Can Get from Boxes
LeetCode #1298: Maximum Candies You Can Get from Boxes. Difficulty: Hard. Topics: Array, Breadth-First Search, Graph Theory. Asked at Airbnb in the last 6 months.
#721 Accounts Merge
LeetCode #721: Accounts Merge. Difficulty: Medium. Topics: Array, Hash Table, String, Depth-First Search, Breadth-First Search, Union-Find, Sorting. Asked at Airbnb in the last 6 months.
LeetCode #3076: Shortest Uncommon Substring in an Array. Difficulty: Medium. Topics: Array, Hash Table, String, Trie. Asked at Airbnb in the last 6 months.
LeetCode #1257: Smallest Common Region. Difficulty: Medium. Topics: Array, Hash Table, String, Tree, Depth-First Search, Breadth-First Search. Asked at Airbnb in the last 6 months.
#1928 Minimum Cost to Reach Destination in Time
LeetCode #1928: Minimum Cost to Reach Destination in Time. Difficulty: Hard. Topics: Array, Dynamic Programming, Graph Theory. Asked at Airbnb in the last 6 months.
## Problem You have a 1D array representing a surface. Water droplets fall at positions given in a list. When two droplets are adjacent (no gap between them), they merge into one larger droplet. After all droplets have fallen, return the number of distinct water bodies and the size of the largest one. ```python def simulate_droplets(surface_len: int, drops: list[int]) -> tuple[int, int]: # returns (num_distinct_bodies, largest_body_size) pass ``` **Example:** ``` Input: surface_len = 10, drops = [3, 4, 7, 8, 9] After all drops: Positions filled: {3,4,7,8,9} Body 1: [3,4] -> size 2 Body 2: [7,8,9] -> size 3 Output: (2, 3) ``` ## Follow-ups 1. How would you track which droplets merged and when (event log)? 2. If drops are applied one at a time and you must answer queries after each drop, what data structure handles this efficiently? 3. Extend to 2D: droplets fall on a grid and merge if they touch horizontally or vertically. 4. What is the time complexity of your approach using a Union-Find structure?
## Problem A customer is owed a total refund of `R` dollars across multiple orders. Each order has an `order_id` and `amount_paid`. Distribute the refund proportionally (each order gets `amount_paid / total_paid * R`), rounded down to the nearest cent. Apply any rounding remainder to the order with the largest fractional part. Return a list of `{order_id, refund_amount}` dicts. ```python def allocate_refund(orders: list[dict], R: float) -> list[dict]: # orders: [{"order_id": str, "amount_paid": float}] pass ``` **Example:** ``` orders = [{order_id:"A", amount_paid:100}, {order_id:"B", amount_paid:150}, {order_id:"C", amount_paid:250}] R = 10.00 Proportions: A=2.00, B=3.00, C=5.00 -> exact, no rounding needed. Output: [{"order_id":"A","refund_amount":2.00}, ...] If R = 10.01: A gets 2.002 -> $2.00, B gets 3.003 -> $3.00, C gets 5.005 -> $5.00, remainder $0.01 -> C (largest fraction) ``` ## Follow-ups 1. Why should you use integer arithmetic (cents) instead of floats for financial calculations? 2. What if two orders have identical fractional parts — how do you break the tie deterministically? 3. How would you handle partial refunds where a single order's refund cannot exceed what was paid? 4. How would you write an audit log proving the allocation was fair?
Coin Change Variant with Floating-Point Denominations
## Coding Question You are given coin denominations `coins` as decimals (e.g., `0.25, 0.5, 1.0`) and a decimal `target`. Compute: - the **minimum number of coins** needed to sum to `target` if possib
## Minimum Cost to Cover Desired Items (Bitmask DP) You are given a list of bundles. Each bundle contains some food items (strings) and has a positive cost. You also have a desired list `want`. You m
## Problem Given a lower bound **lowerBound** (typically an integer or a digit string), find the **smallest** permutation (from some given set of digits) whose numeric value is **>= lowerBound**. > N
What to Expect in the Airbnb Onsite Coding Round
The Airbnb Software Engineer Onsite Coding round has a specific calibration purpose distinct from other rounds in the loop. Across 47+ verified reports on LeakCode for this exact round type, the consistent expectations: clear scoping of the problem before diving into a solution, explicit reasoning about complexity, structured handling of edge cases, and the ability to discuss trade-offs between two reasonable approaches.
Reports tagged with the Onsite Coding round at Airbnb show recurring patterns in difficulty and topic distribution. The Onsite Coding round is typically 45-60 minutes; the interviewer is calibrated against a specific rubric. The discriminator between candidates who advance and candidates who do not is rarely the final correctness of the answer. It is the path: did you clarify, did you verbalize your approach, did you handle edge cases, and did you communicate throughout.
How To Prepare for This Specific Round
Filter the questions below to the most recent reports (past 6-12 months). Questions tagged for this exact round type from this exact company at this exact role level are the highest-signal data available. Older reports may reference questions that have since rotated out of the company's pool.
Practice 4-6 representative problems from this set under timed conditions. The goal is not memorization (companies rotate questions); the goal is to internalize the patterns the interviewer typically reaches for and the depth of follow-up to expect. Reports on LeakCode also tag the typical follow-up depth at this round type, which is the discriminating signal between hire and no-hire calibration.
Onsite Coding Round Timing and Format
The Onsite Coding round at Airbnb typically runs 45-60 minutes. Use the first 2-3 minutes to clarify requirements; you should never start coding or designing without verifying the input/output format, constraints, and edge cases out loud. Use the next 5-7 minutes to verbalize your approach before writing any code. The middle 20-30 minutes are implementation. Reserve the final 10 minutes for testing with concrete examples and discussing optimization or trade-offs.
Time budget discipline is one of the most reliable senior-vs-junior discriminators in this round. Strong candidates verbalize where they are in their budget out loud ("I've used about 20 minutes, I have 15 minutes left for testing and one optimization"). This signals engineering maturity to the interviewer and creates positive feedback they can capture in writing.
Common Failure Modes in This Round
Reports tagged "no hire" at Airbnb Software Engineer Onsite Coding commonly cite: coding silently without verbalizing approach, jumping to implementation before clarifying requirements, missing edge cases (empty input, single element, very large input), producing working code that the candidate cannot refactor when asked, and failing to test their solution with concrete examples before declaring done.
The single most predictive failure mode in 2025-2026 reports: not asking clarifying questions. Interviewers at all FAANG companies are explicitly trained to weight this dimension. Strong candidates ask 3-5 clarifying questions even on problems that look obvious; weak candidates dive into code immediately. The clarifying-question check is often the first signal recorded in the interviewer's notes.
See All 47 Questions from This Round
Full question text, answer context, and frequency data for subscribers.
Get Access