1. Two Sum
easyAsked at CanvaFind 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.
By Alex Chen, Founder, InterviewChamp.AI · Last verified
Problem
Given an integer array nums and an integer target, return indices of the two numbers such that they add up to target. Each input has exactly one solution and you may not use the same element twice.
Constraints
2 <= nums.length <= 10^4-10^9 <= nums[i] <= 10^9Exactly one valid answer exists
Examples
Example 1
nums = [2,7,11,15], target = 9[0,1]Example 2
nums = [3,2,4], target = 6[1,2]Approaches
1. Brute force
Check every pair of indices.
- Time
- O(n^2)
- Space
- O(1)
for (let i = 0; i < nums.length; i++) {
for (let j = i + 1; j < nums.length; j++) {
if (nums[i] + nums[j] === target) return [i, j];
}
}Tradeoff:
2. Hash map one pass
Store seen values in a map; for each new value, check if target - value already exists. Single pass, constant lookup.
- Time
- O(n)
- Space
- O(n)
function twoSum(nums, target) {
const seen = new Map();
for (let i = 0; i < nums.length; i++) {
const need = target - nums[i];
if (seen.has(need)) return [seen.get(need), i];
seen.set(nums[i], i);
}
}Tradeoff:
Canva-specific tips
Canva expects you to articulate the space-time tradeoff out loud, mirroring how the design team reasons about element-lookup caches in the editor.
Solve it now
Free. No sign-up. Python and JavaScript run instantly in your browser.
Practice these live with InterviewChamp.AI
Drill Two Sum and other Canva interview questions under real-loop conditions with instant feedback on your reasoning, complexity claims, and code.
Practice these live with InterviewChamp.AI →