# Arrays

#### Determine if the sum of three integers is equal to the given value

Problem statement

Given an array of integers and a value, determine if there are any three integers in the array whose sum equals the given value.

# ​

We are given an array containing ‘n’ distinct numbers taken from the range 0 to ‘n’. Since the array has only ‘n’ numbers out of the total ‘n+1’ numbers, find the missing number.

# ​

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.

# ​

Make a deep copy of the given linked list where each node has two pointers: 'next' and 'arbitrary_pointer'.

# ​

Given the root to a binary tree where each node has an additional pointer called sibling (or next), connect the sibling pointer to the next node in the same level.

# ​

Given a Binary Tree, figure out whether it's a Binary Search Tree. In a binary search tree, each node's key value is smaller than the key value of all nodes in the right subtree, and are greater than the key values of all nodes in the left subtree i.e. L < N < R.

# ​

Given a dictionary of words and an input string tell whether the input string can be completely segmented into dictionary words.

# ​

Given a string, find all substrings that are palindromes.

# ​

Given an array of positive numbers and a positive number ‘k’, find the maximum sum of any contiguous subarray of size ‘k’.

# ​

Given an input string, determine if it makes a valid number or not. For simplicity, assume that white spaces are not present in the input.

# ​

Given an NxN grid of characters and a dictionary, find all words which can be made from the characters in the grid and are present in the given dictionary. A word can start and end at any character in the grid. The next character must be adjacent to the previous character in any of the directions i.e. up, down, left, right and diagonal. The character at each position in the grid can be used only once while making a word.

# ​

Find the minimum spanning tree of a connected, undirected graph with weighted edges.

# ​

Least Recently Used (LRU) is a common caching strategy. It defines the policy to evict elements from the cache to make room for new elements when the cache is full, meaning it discards the least recently used items first.

# ​

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

# ​

Search, or find the position of, a given key in a 2D matrix. All rows and columns are sorted.