1. You
are given two linked-lists representing two non-negative integers. The digits
are stored in reverse order and each of their nodes contain a single digit. Add
the two numbers and return it as a linked list.
Example:
Example:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
2. Given a
string, find the length of the longest substring without repeating characters.
Here is an example solution in Python language. (Any language is OK to use in an interview, though we'd recommend Python as a generalist language utilized by companies like Google, Facebook, Netflix, Dropbox, Pinterest, Uber, etc.,)
Here is an example solution in Python language. (Any language is OK to use in an interview, though we'd recommend Python as a generalist language utilized by companies like Google, Facebook, Netflix, Dropbox, Pinterest, Uber, etc.,)
3. You are given
an array of integers in an arbitrary order. Return whether or not it is
possible to make the array non-decreasing by modifying at most 1 element to any
value.
We define an array is non-decreasing if array[i] <= array[i + 1] holds for every i (1 <= i < n).
Example:
[13, 4, 7] should return true, since we can modify 13 to any value 4 or less, to make it non-decreasing.
[13, 4, 1] however, should return false, since there is no way to modify just one element to make the array non-decreasing.
We define an array is non-decreasing if array[i] <= array[i + 1] holds for every i (1 <= i < n).
Example:
[13, 4, 7] should return true, since we can modify 13 to any value 4 or less, to make it non-decreasing.
[13, 4, 1] however, should return false, since there is no way to modify just one element to make the array non-decreasing.
4. You 2 integers n and m representing an n by m grid,
determine the number of ways you can get from the top-left to the bottom-right
of the matrix y going only right or down.
Example:
n = 2, m = 2
This should return 2, since the only possible routes are:
Right, down
Down, right.
Example:
n = 2, m = 2
This should return 2, since the only possible routes are:
Right, down
Down, right.
5. You are given an array of intervals - that is, an array of
tuples (start, end). The array may not be sorted, and could contain overlapping
intervals. Return another array where the overlapping intervals are merged.
For example:
[(1, 3), (5, 8), (4, 10), (20, 25)]
This input should return [(1, 3), (4, 10), (20, 25)] since (5, 8) and (4, 10) can be merged into (4, 10).
For example:
[(1, 3), (5, 8), (4, 10), (20, 25)]
This input should return [(1, 3), (4, 10), (20, 25)] since (5, 8) and (4, 10) can be merged into (4, 10).
6. You
are given the preorder and inorder traversals of a binary tree in the form of
arrays. Write a function that reconstructs the tree represented by these
traversals.
Example:
Preorder: [a, b, d, e, c, f, g]
Inorder: [d, b, e, a, f, c, g]
The tree that should be constructed from these traversals is:
Example:
Preorder: [a, b, d, e, c, f, g]
Inorder: [d, b, e, a, f, c, g]
The tree that should be constructed from these traversals is:
a
/ \
b c
/ \ / \
d e f g
/ \
b c
/ \ / \
d e f g
7. You are given
an array of integers. Return the length of the longest increasing subsequence
(not necessarily contiguous) in the array.
Example:
[0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]
Example:
[0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]
8. Given a time in the
format of hour and minute, calculate
the angle of the hour and minute hand on a clock.
9. A k-ary tree is a tree with k-children, and a tree is
symmetrical if the data of the left side of the tree is the same as the right
side of the tree.
Here's an example of a symmetrical k-ary tree.
Here's an example of a symmetrical k-ary tree.
4
/ \
3 3
/ | \ / | \
9 4 1 1 4 9
/ \
3 3
/ | \ / | \
9 4 1 1 4 9
Given a k-ary tree, figure out if the tree is symmetrical.
10. Given a list
of numbers of size n,
where n is greater than 3, find the maximum and minimum of the list using less
than 2 * (n - 1) comparisons.
11. You are given a doubly
linked list. Determine if it is a palindrome.
12. Given
the root of a binary tree, print its level-order traversal. For example:
1
/ \
2 3
/ \
4 5
/ \
2 3
/ \
4 5
The following tree should output 1, 2, 3, 4, 5.
13. Return the longest run of 1s for a given integer n's binary representation.
Example:
Example:
Input: 242
Output: 4
Output: 4
242 in binary is 0b11110010, so the longest run of
1 is 4.
14. An IP Address is in the format of A.B.C.D, where A, B, C,
D are all integers between 0 to 255.
Given a string of numbers, return the possible IP addresses you can make with that string by splitting into 4 parts of A, B, C, D.
Keep in mind that integers can't start with a 0! (Except for 0)
Example:
Given a string of numbers, return the possible IP addresses you can make with that string by splitting into 4 parts of A, B, C, D.
Keep in mind that integers can't start with a 0! (Except for 0)
Example:
Input: 1592551013
Output: ['159.255.101.3', '159.255.10.13']
Output: ['159.255.101.3', '159.255.10.13']
15. A
UTF-8 character encoding is a variable width character encoding that can vary
from 1 to 4 bytes depending on the character. The structure of the encoding is
as follows:
1 byte:
0xxxxxxx
2 bytes: 110xxxxx 10xxxxxx
3 bytes: 1110xxxx 10xxxxxx 10xxxxxx
4 bytes: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
2 bytes: 110xxxxx 10xxxxxx
3 bytes: 1110xxxx 10xxxxxx 10xxxxxx
4 bytes: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
Given a list of integers where each integer represents 1 byte, return whether or not the list of integers is a valid UTF-8 encoding.
16. A maze is a matrix where each cell can either be
a 0 or 1. A 0 represents that the cell is empty, and
a 1 represents a wall that cannot be walked through. You can also
only travel either right or down.
Given a nxm matrix, find the number of ways someone can go from the top left corner to the bottom right corner. You can assume the two corners will always be 0.
Example:
Given a nxm matrix, find the number of ways someone can go from the top left corner to the bottom right corner. You can assume the two corners will always be 0.
Example:
Input: [[0, 1, 0], [0, 0, 1], [0, 0, 0]]
# 0 1 0
# 0 0 1
# 0 0 0
Output: 2
# 0 1 0
# 0 0 1
# 0 0 0
Output: 2
The two paths that can
only be taken in the above example are: down -> right -> down -> right, and down -> down
-> right -> right.
17. Given a
string, determine if there is a way to arrange the string such that the string
is a palindrome. If such arrangement exists, return a palindrome (There could
be many arrangements). Otherwise return None.
18. Given a list of sorted
numbers (can be both negative or positive), return the list of numbers squared
in sorted order.
19. Given a binary tree,
find the level in the tree where the sum of all nodes on that level is the
greatest.
20. N-Queens is the
problem where you find a way to put n queens on a nxn chess board without them
being able to attack each other. Given an integer n, return 1
possible solution by returning all the queen's position.
21. Given a valid
parenthesis string (with only '(' and ')',
an open parenthesis will always end with a close parenthesis, and a close
parenthesis will never start first), remove the outermost layers of the
parenthesis string and return the new parenthesis string.
If the string has multiple outer layer parenthesis (ie (())()), remove all outer layers and construct the new string. So in the example, the string can be broken down into (()) + (). By removing both components outer layer we are left with () + '' which is simply (), thus the answer for that input would be ().
If the string has multiple outer layer parenthesis (ie (())()), remove all outer layers and construct the new string. So in the example, the string can be broken down into (()) + (). By removing both components outer layer we are left with () + '' which is simply (), thus the answer for that input would be ().
22. Given two strings
which represent non-negative integers, multiply the two numbers and return the
product as a string as well. You should assume that the numbers may be
sufficiently large such that the built-in integer type will not be able to
store the input (Python does have BigNum, but assume it does not exist).
23. Given a
list of strings, find the longest common prefix between all strings.
24. Given a list of
numbers, and a target number n, find all unique combinations of a, b, c, d, such that a + b + c + d = n.
25. Given a node in a
connected directional graph, create a copy of it.
26. Given a valid
parenthesis string (with only '(' and ')',
an open parenthesis will always end with a close parenthesis, and a close
parenthesis will never start first), remove the outermost layers of the
parenthesis string and return the new parenthesis string.
If the string has multiple outer layer parenthesis (ie (())()), remove all outer layers and construct the new string. So in the example, the string can be broken down into (()) + (). By removing both components outer layer we are left with () + '' which is simply (), thus the answer for that input would be ().
If the string has multiple outer layer parenthesis (ie (())()), remove all outer layers and construct the new string. So in the example, the string can be broken down into (()) + (). By removing both components outer layer we are left with () + '' which is simply (), thus the answer for that input would be ().
27. A
unival tree is a tree where all the nodes have the same value. Given a binary
tree, return the number of unival subtrees in the tree.
For example, the following tree should return 5:
For example, the following tree should return 5:
0
/ \
1 0
/ \
1 0
/ \
1 1
/ \
1 0
/ \
1 0
/ \
1 1
The 5 trees are:
- The three single '1' leaf nodes. (+3)
- The single '0' leaf node. (+1)
- The [1, 1, 1] tree at the bottom. (+1)
28. A
UTF-8 character encoding is a variable width character encoding that can vary
from 1 to 4 bytes depending on the character. The structure of the encoding is
as follows:
1 byte:
0xxxxxxx
2 bytes: 110xxxxx 10xxxxxx
3 bytes: 1110xxxx 10xxxxxx 10xxxxxx
4 bytes: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
2 bytes: 110xxxxx 10xxxxxx
3 bytes: 1110xxxx 10xxxxxx 10xxxxxx
4 bytes: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
For more information, you can read up on the Wikipedia Page.
Given a list of integers where each integer represents 1 byte, return whether or not the list of integers is a valid UTF-8 encoding.
Given a list of integers where each integer represents 1 byte, return whether or not the list of integers is a valid UTF-8 encoding.
29. You
are given two linked-lists representing two non-negative integers. The digits
are stored in reverse order and each of their nodes contain a single digit. Add
the two numbers and return it as a linked list.
Example:
Example:
Input: (2 -> 4 -> 3) + (5 -> 6 ->
4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
30. Given a time in the
format of hour and minute, calculate the angle of the hour and
minute hand on a clock.
31. N-Queens is the
problem where you find a way to put n queens on a nxn chess board without them
being able to attack each other. Given an integer n, return 1
possible solution by returning all the queen's position.
32. Given a list of sorted
numbers (can be both negative or positive), return the list of numbers squared
in sorted order.
33. You 2 integers n and m
representing an n by m grid, determine the number of ways you can get from the
top-left to the bottom-right of the matrix y going only right or down.
Example:
n = 2, m = 2
This should return 2, since the only possible routes are:
Right, down
Down, right.
Example:
n = 2, m = 2
This should return 2, since the only possible routes are:
Right, down
Down, right.
34. You are given an array
of intervals - that is, an array of tuples (start, end). The array may not be
sorted, and could contain overlapping intervals. Return another array where the
overlapping intervals are merged.
For example:
[(1, 3), (5, 8), (4, 10), (20, 25)]
This input should return [(1, 3), (4, 10), (20, 25)] since (5, 8) and (4, 10) can be merged into (4, 10).
For example:
[(1, 3), (5, 8), (4, 10), (20, 25)]
This input should return [(1, 3), (4, 10), (20, 25)] since (5, 8) and (4, 10) can be merged into (4, 10).
35. You are
given an array of intervals - that is, an array of tuples (start, end). The
array may not be sorted, and could contain overlapping intervals. Return
another array where the overlapping intervals are merged.
For example:
[(1, 3), (5, 8), (4, 10), (20, 25)]
This input should return [(1, 3), (4, 10), (20, 25)] since (5, 8) and (4, 10) can be merged into (4, 10).
For example:
[(1, 3), (5, 8), (4, 10), (20, 25)]
This input should return [(1, 3), (4, 10), (20, 25)] since (5, 8) and (4, 10) can be merged into (4, 10).
0 Comments
Please do not Enter any spam link in the comment box