Asana Coding Interview Questions
26 Asana coding interview problems with full optimal solutions — 15 easy, 10 medium, 1 hard. Every problem ships with multiple approaches (brute-force first, then the optimal), complexity tables for each, company-specific tips on what an Asana interviewer values, and a FAQ section.
Showing 18 problems of 26
- #15mediumfoundational
15. Course Schedule
Determine whether a set of courses with prerequisites can all be completed — Asana uses this exact graph-cycle-detection pattern when validating that task dependency graphs in a project remain free of circular blockers.
- #16mediumfoundational
16. Course Schedule II
Return a valid ordering of courses given their prerequisites — the same topological sort that Asana's backend runs when computing a linearized task execution plan for a dependency-heavy project.
- #17mediumfoundational
17. Number of Islands
Count connected land regions in a 2-D grid — Asana maps this directly to identifying isolated clusters of tasks or teams in a project dependency graph where no cross-team links exist.
- #18mediumfoundational
18. Task Scheduler
Compute the minimum CPU intervals needed to execute tasks with a cooldown constraint — Asana's scheduling engine faces this exact problem when rate-limiting repeated task-type assignments across a team's sprint.
- #19mediumfoundational
19. Merge Intervals
Collapse overlapping time ranges into a minimal non-overlapping set — exactly what Asana's timeline view does when rendering overlapping task blocks for the same assignee on a given day.
- #20mediumfoundational
20. Meeting Rooms II
Find the minimum number of meeting rooms required to host all meetings without conflicts — Asana surfaces this when its calendar-integration feature must allocate the fewest concurrent task-review slots across a team.
- #21mediumfoundational
21. Longest Increasing Subsequence
Find the length of the longest strictly increasing subsequence — Asana uses this DP pattern when computing the critical path of sequentially dependent milestones in a project's dependency chain.
- #22easyfoundational
22. Climbing Stairs
Count the distinct ways to reach the top of an n-step staircase using 1 or 2 steps at a time — Asana uses this Fibonacci-DP warmup to assess how cleanly you reduce a novel problem to overlapping subproblems before coding.
- #23mediumfoundational
23. Min Stack
Design a stack that retrieves the minimum element in O(1) — Asana applies this auxiliary-stack pattern when tracking the minimum-priority task visible in a collapsible project section without rescanning the full list.
- #24mediumfoundational
24. Find Minimum in Rotated Sorted Array
Locate the minimum in a rotated sorted array in O(log n) — Asana applies binary search on monotonic-but-rotated data structures when quickly finding the earliest due-date task in a reordered sprint queue.
- #25hardfoundational
25. Word Ladder
Find the shortest transformation sequence from one word to another by changing one letter at a time — Asana uses BFS shortest-path reasoning when computing the minimum number of workflow-state transitions needed to move a task from one status to another under a rule graph.
- #26mediumfoundational
26. Network Delay Time
Find the time for a signal to reach all nodes in a weighted directed graph — Asana maps this to computing the latest a notification will propagate across all team members in a project's dependency-notification chain.
- #1easyfrequently asked
1. Two Sum
Given an array of integers and a target, return the indices of two numbers that add up to the target. Asana opens with this to confirm you reach for hash maps reflexively before quadratic loops — a baseline signal before they pivot to graph problems.
- #2easyfrequently asked
2. Valid Parentheses
Determine if a string of brackets is balanced and properly nested. Asana asks this to test whether you reach for a stack reflexively — the same data structure underpins their task-dependency cycle checks.
- #3easyfrequently asked
3. Merge Two Sorted Lists
Merge two sorted linked lists into one sorted list by splicing nodes together. Asana asks this to confirm you can handle pointer manipulation cleanly — a building block for their dependency-resolution merge step.
- #8easyfrequently asked
8. Merge Sorted Array
Merge two sorted arrays in-place, where the first has extra trailing slots. Asana asks this to test whether you spot the back-to-front trick — they care because the same insight powers their activity-feed merge logic.
- #9easyfrequently asked
9. Binary Tree Inorder Traversal
Return the inorder traversal of a binary tree. Asana asks this to confirm you can implement both recursive and iterative tree walks — they care because the iterative pattern is what powers their cycle-free dependency walker.
- #12easyfrequently asked
12. Maximum Depth of Binary Tree
Find the maximum depth of a binary tree. Asana asks this to confirm you can write the simplest tree recursion cleanly — a baseline before they ask about deep project-hierarchy traversals.