See all coding puzzles and patterns here.


Data Structure Description

A divide and conquer algorithm solves a problem by breaking the problem down into smaller sub-problems and then combining the results.

Divide and conquer is distinct from dynamic programming because the result of one sub-problem is not dependent on the other.

DP generates solutions like this: $$ dp_i = dp_{i-1} + extra\_work $$

While divide and conquer generates solutions like this: $$ solution(problem) = combine(solution(sub\_problem1),\ solution(sub\_problem2, ...)) $$


Puzzles

Puzzle Difficulty External Link
Largest Concatenated Number From Array Medium
Letter Combinations of a Phone Number Medium Leetcode 17