#### Below is a list of the 15 most frequently asked questions in a facebook interview

For detailed solutions to each question, you can visit
Grokking the Coding Interview: Patterns for Coding Questions

# Arrays

#### move zeros to the left

Problem Statement

Given an integer array, move all elements that are equal to 0 to the left while maintaining the order of other elements in the array.

# ​

Given a list of intervals, merge all the overlapping intervals to produce a list that has only mutually exclusive intervals.

# ​

Given the head pointers of two linked lists where each linked list represents an integer number (each node is a digit), add them and return the resulting linked list.

# ​

Given two sorted linked lists, merge them so that the resulting linked list is also sorted.

# ​

Convert a binary tree to a doubly linked list so that the order of the doubly linked list is the same as an in-order traversal of the binary tree. After conversion, the left pointer of the node should be pointing to the previous node in the doubly linked list, and the right pointer should be pointing to the next node in the doubly linked list.

# ​

Given a binary tree and a number ‘S’, find all paths from root-to-leaf such that the sum of all the node values of each path equals ‘S’.

# ​

Given a string, find the length of the longest substring which has no repeating characters.

# ​

Given a string, find the length of the longest substring in it with no more than K distinct characters.

# ​

Given a list of daily stock prices (integers for simplicity), return the buy and sell prices for making the maximum profit. We need to maximize the single buy/sell profit. If we can't make any profit, we'll try to minimize the loss.

# ​

Given a double, 'x', and an integer, 'n', write a function to calculate 'x' raised to the power 'n'.

# ​

You are given a set of integers and you have to find all the possible subsets of this set of integers.

# ​

Serialize a binary tree to a file and then deserialize it back to a tree so that the original and the deserialized trees are identical.

# ​

Given a sorted array of integers, return the low and high index of the given key. Return -1 if not found. The array length can be in the millions with many duplicates.

# ​

Given an array of numbers sorted in an ascending order, find the ceiling of a given number ‘key’. The ceiling of the ‘key’ will be the smallest element in the given array greater than or equal to the ‘key’. Write a function to return the index of the ceiling of the ‘key’. If there isn’t any ceiling return -1.

For detailed solutions to each question, you can visit
Grokking the Coding Interview: Patterns for Coding Questions