Canva Coding Interview Questions
25 Canva coding interview problems with full optimal solutions — 16 easy, 8 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 Canva interviewer values, and a FAQ section.
- #48mediumfoundational
48. Rotate Image
Rotate an n×n matrix 90 degrees clockwise in-place — Canva reaches for this to see whether you can decompose a 2D coordinate transform into the transpose-then-reflect steps their canvas rotation engine uses under the hood.
- #54mediumfoundational
54. Spiral Matrix
Traverse an m×n matrix in spiral order and return every element — Canva asks this to probe boundary-management discipline, the same discipline needed to correctly clip rendering passes to the visible canvas viewport.
- #56mediumfoundational
56. Merge Intervals
Merge all overlapping intervals into the fewest non-overlapping ones — Canva's timeline editor collapses overlapping animation keyframe ranges using exactly this pattern, so expect it early in a phone screen.
- #57mediumfoundational
57. Insert Interval
Insert a new interval into a sorted, non-overlapping list and merge as needed — Canva's animation timeline must splice new keyframe ranges into an existing schedule without disruption, making this a direct analogue to production code.
- #70easyfoundational
70. Climbing Stairs
Count distinct ways to climb n steps taking 1 or 2 steps at a time — Canva uses this classic DP warmup to check whether you recognize the Fibonacci recurrence and can articulate memoization vs. bottom-up tabulation before the harder design-system problems.
- #73mediumfoundational
73. Set Matrix Zeroes
Zero out entire rows and columns wherever a zero appears — Canva uses this to test in-place mutation discipline, mirroring how their grid-layout engine propagates empty-cell constraints without allocating a second matrix.
- #79mediumfoundational
79. Word Search
Determine whether a word exists as a connected path of adjacent letters in a character grid — Canva uses grid-backtracking problems to evaluate candidates who will work on spatially-aware features like auto-snapping, object search, and canvas hit-testing.
- #121easyfoundational
121. Best Time to Buy and Sell Stock
Find the maximum profit from a single buy-then-sell in a price array — Canva uses this single-pass sliding-minimum problem to confirm you can reason about 'running state' before handing you their real canvas-rendering performance metrics.
- #125easyfoundational
125. Valid Palindrome
Check whether a string reads the same forward and backward after stripping non-alphanumeric characters — Canva uses this two-pointer warmup to assess how you handle real-world messy string input before asking you to parse SVG path commands.
- #146hardfoundational
146. LRU Cache
Design a Least Recently Used cache with O(1) get and put — Canva's image and font rendering pipeline uses LRU eviction to cap memory on large canvases, making this a direct system-design-in-code test you'll likely see in a senior loop.
- #200mediumfoundational
200. Number of Islands
Count connected regions of '1's in a binary grid — Canva applies connected-component logic to detect isolated element groups on a canvas, making this a strong signal for how you think about spatial partitioning in a design editor.
- #207mediumfoundational
207. Course Schedule
Detect whether a set of course prerequisites forms a cycle — Canva applies topological-sort cycle detection to their layer-dependency graph, where circular element references would cause infinite render loops in their design engine.
- #1easyfoundational
1. Two Sum
Find two indices whose values sum to a target — Canva uses this as a warmup to gauge how you reach for the right data structure on canvas-element lookups.
- #2easyfoundational
2. Valid Parentheses
Determine if a string of brackets is balanced — Canva uses this to test how you reason about stack-based parsing for nested layer trees.
- #3easyfoundational
3. Merge Two Sorted Lists
Merge two sorted linked lists into one — Canva uses this to test pointer hygiene and stable ordering, mirroring how template content streams are merged.
- #4easyfoundational
4. Remove Duplicates from Sorted Array
Compact a sorted array in place by removing duplicates — Canva uses this to evaluate two-pointer reasoning relevant to deduping asset-IDs in a design.
- #5easyfoundational
5. Remove Element
Remove all occurrences of a value in place — Canva uses this to test how cleanly you mutate arrays, like removing deleted layers from a render queue.
- #6easyfoundational
6. Search Insert Position
Find where to insert a value in a sorted array — Canva tests this to see if you reach for binary search on ordered z-index lists.
- #7easyfoundational
7. Plus One
Increment a number represented as a digit array — Canva uses this to gauge how you handle carries and array growth, similar to incrementing canvas page numbers.
- #8easyfoundational
8. Merge Sorted Array
Merge two sorted arrays in place — Canva uses this to test whether you can avoid scratch buffers when combining template asset lists.
- #9easyfoundational
9. Binary Tree Inorder Traversal
Return inorder traversal values of a binary tree — Canva uses this to check that you can walk tree structures, which mirror nested layer hierarchies.
- #10easyfoundational
10. Same Tree
Decide if two binary trees are structurally and value-equal — Canva uses this to test recursion hygiene around shape comparisons in template trees.
- #11easyfoundational
11. Symmetric Tree
Check whether a binary tree is a mirror of itself — Canva uses this to gauge how clearly you reason about mirrored layer compositions.
- #12easyfoundational
12. Maximum Depth of Binary Tree
Find the maximum depth of a binary tree — Canva uses this to verify simple recursion sense around bounding deeply nested group depth.
- #13easyfoundational
13. Balanced Binary Tree
Decide whether a binary tree is height-balanced — Canva uses this to test bottom-up recursion versus naive top-down recomputation.