## Depth First Search (DFS) and Breath First Search (BFS)

The two main methods to traverse each node in a graph - Depth First Search and Breath First Search.

The two main methods to traverse each node in a graph - Depth First Search and Breath First Search.

Introduce Binary Search

Find a peak element in an array and return its index.

Find a duplicate in an array with some other requirements.

Given a binary tree, return the level order traversal of its nodes' values.

Given a binary tree, return the bottom-up level order traversal of its nodes' values.

Given a sorted array of integers, find the starting and ending position of a given target value.

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used.

Given a 2D board and a word, find if the word exists in the grid.

Write an efficient algorithm that searches for a value in an m x n matrix.

Write an efficient algorithm that searches for a value in an m x n matrix.

Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.

Find Minimum in Rotated Sorted Array

Implement a trie with insert, search, and startsWith methods.

Design a data structure that supports add(word) and search(word).

Suppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all the following ones to be bad.