## Amazon Interview Questions

- 0of 0 votes
Input unsorted integer array represents a list of coins,

find the minimum amount of money that cannot be formed by these coins, each coin can only be used once

E.g. {1,1} -> 3, {1,2,4} -> 8

- 0of 0 votes
Give me a list of int, find the length of the smallest cycle. For example, 1, 2, 1, 2, the length of the cycle is 2. Then 1, 2, 1, 2, 1 has a minimum length of 2. Then the length of 1, 2, 1, 2, 3 should be 5 because the entire list is not in repeat. Then the minimum length of 1, 2, 1, 2, 1, 1, 2 is 2.

- 0of 0 votes
Find the kth missing element in a sorted array. For example [2,3,5,7], k = 0: return 4, k = 1: return 6

expected time complexity logn

- 0of 0 votes
To an array and K, each element in the array can only move K positions to the left at most, no limit to the right, try to sort the array under the limit of K

a = [5, 2, 4, 3, 1], k = 2

Return [2, 3, 1, 4, 5]

- 0of 0 votes
Given a function rand32() (random number range 0-2**32-1) that randomly generates a 32-bit int, design a new random function:

Randn(n) generates a random distributed random number (0 - 2**n-1)

Rand3n(n) generates (0 - 3**n-1) the uniformly distributed random number

- 0of 0 votes
Topic: There is a set of coordinates. The original format of each coordinate is (1.3, 0.5). However, the comma and decimal point are gone. Only one string is left, allowing you to restore all possible combinations. For example, 123, possible (1, 23) (1, 2.3) (12, 3) (1.2, 3)

- 0of 0 votes
given period and threshold, Assume there is a endless streaming events, each event occurs at timestamp "x". The question want you to write an API that return true if number of the events are over the threshold within the period around timestamp "x"

Ex:

period = 3, threshold =2

getEvent(10) -> false

getEvent(12) -> false

getEvent(13) -> true [10,12,13]

getEvent(20) -> false

part one: event come in order

part two: event come without order

- 0of 0 votes
Given vector<int> nums, and pair<int, int> range. Find out how many continuous subsequences within this vector sum up the number within the range.

Input: [1, 2, 3], [3,6]

Output: (4)

because [1,2,3], [1,2], [2,3], [3]

- 0of 0 votes
Each have a (x,y) coordinate.

Write an API that group three Googler together for lunch if they are close enough. Otherwise, throw them in un-schedule pool.

Distance formula = sqrt((x1-x2) ^2 + (y1-y2) ^2)

Given an int range;

Range: 2

Input | Output of API Un-schedule pool

0,0 -> [] [[0,0]]

1,0 -> [] [[0,0], [1,0]]

3,0 -> [] [[0,0], [1,0], [3,0]]

1,1-> [[0,0], [1,0], [1,1]] [[3,0]]

- 0of 0 votes
Given an vector<int> nums and an int target, you can change any element of the vector to positive or negative. How many uniquely different vector sum up to target?

Input: [1,1,1], target = 2

[-1,1,1]

[1,-1,1]

[1,1,-1]

return (3)

- 0of 0 votes
find max path sum in DAG, weight can be negative

- 0of 0 votes
Implement a method to check if a n-ary tree is unival

class TreeNode {

int val;

List<TreeNode> children;

TreeNode(int val) {

this.val = val;

children = new ArrayList<>();

}

}

- 0of 0 votes
Given the length and width of a rectangle, how many ways can be used to go from the upper left corner to the upper right corner (each step can only go to the right, top right or bottom right):

-follow up 1: If three points in the rectangle must be visited, how many ways

-follow up 2: If you are given an point H, and the path must go down below the H point, how to do it

- 0of 0 votes
The thief has found himself a new place for his thievery again. There is only one entrance to this area, called the "root." Besides the root, each house has one and only one parent house. After a tour, the smart thief realized that "all houses in this place forms an n-nary tree". It will automatically contact the police if two directly-linked houses were broken into on the same night.

Determine the maximum amount of money the thief can rob tonight without alerting the police.

/**

* Definition for a n-ary tree node.

* public class TreeNode {

* int val;

* List<TreeNode> kids;

* }

*/

class Solution {

public int rob(TreeNode root) {

}

}

- 1of 1 vote
For two string a, b, their distance is defined as the number of positions at which the corresponding character are different.

Now you can swap characters at any two locations once, and ask how to swap to make the distance the smallest.

- 0of 0 votes
preorder Traversing a n-ary tree without using recurrsion

TreeNode<T> {

T val;

List<TreeNode> children;

}

- 0of 0 votes
Given two methods for the person class, one to find a dad and one to find a mother, using these two methods to achieve a method to determine whether the two people are related to blood, assuming a limited number of people.

- 0of 0 votes
Self-implemented data structures and methods, output all the heirs. To achieve birth (parent, name), dead (name), getAllSucession (). There is a king, you can use birth plus children, dead dead. The order of inheritance is the same as preorder except that this tree has multiple children.

- 0of 0 votes
Given an Input file of IPv4 addresses, filter and write them into Valid and Invalid IPs.

Input file = ["192.100.0.1, "10.0.0.1", "aa.bb.cc.dd", "10.0", "999.10.10.1"]

Valid = []

Invalid = []

- 0of 0 votes
A coffee machine has three buttons (S, M, L). After pressing each button, the coffee machine will flow out of a range of coffee [s1, s2], [m1, m2], [l1, l2], but the outflow of coffee The amount is random. There is a cup with a total capacity of c2. There is a tick c1 on the cup. If the amount of coffee is [c1, c2], it is considered full.

After asking for a series of button operations, can the coffee be filled in [c1, c2] but not overflow?

- 0of 0 votes
Input like method stack trace: "main, start", "foo, start", foo, end", "bar, start", "bar end", "main, end", "main2, start", "main2, end"

Output String, such as the following format, to indicate the order in which the method was called and the hierarchy`main Foo Bar main2`

- 0of 0 votes
public TreeNode{

int val = val;

TreeNode left, right;

public TreeNode(int val){

this.val = val;

}

given a tree and an API, delete a part of the nodes in the tree and return the forest formed after the node is deleted.

public List<TreeNode> deletenodes(TreeNode root, List<TreeNode> toDeletes){

}

example`1 / \ 2 3 / / \ 4 5 6 If you delete the 2 and 5 nodes, you will need to return to the forest [4, 1] \ 3 \ 6`

- 0of 0 votes
turns the following format string into a tree: node has keys, values, and subtrees.

For example, the first key is node1 and the value is ‘aaaa’

<node1>aaaaa<node2>bbbbb</node2><node3>cccc</node3><node4>dddd</node4></node1>

- 0of 0 votes
find longest common suffix of two linked list.

- 0of 0 votes
Give a 0/1 matrix to find and remove the islands. Assume that the boundaries of the matrix are 1

The definition of islands is surrounded by 0

The simplest example is

enter:

111111

100001

100101

100001

111111

Output:

111111

100001

100001

100001

111111

- 0of 0 votes
Write a hash function so that a string and its reverse get the same return value

Hash(‘banana’) == hash(‘ananab’)

Hash(‘banana’) == hash(‘banana’)

Hash(‘banana’) != hash(‘banaaa’)

- 0of 0 votes
x={a,b,c}, y={p,q}, z={r,s}

Define a

Operation, x * y * z = {{a,p,r},{a,p,s},{a,q,r},{a,q,s}......{c,q s}}

Is to output all the results in the order of each subset, implementing a class iterator that has Next() and hasNext() methods

- 0of 0 votes
Give a tree-like graph that lets you find the maximum length from the leaf node to the leaf node. The input is an array of edges.

- 0of 0 votes
Last Man Standing

A king gathers all the men in the kingdom who are to be put to death for their crimes, but because of his mercy, he will pardon one. He gathers the men into a circle and gives the sword to one man. The man kills the man to his left, and gives the sword to the man to the dead man's left. The last man alive is pardoned.

With 5 men, the 3rd is the last man alive.

Write a program that accepts a single parameter: a number N that represents the number of criminals to start with. The program should output the number of the last two men alive.

Example #1: myProgram 5

would output:

5, 3

Example #2: myProgram 7

would output:

3, 7

- -1of 1 vote
To determine whether two people have kinship, all data structures need their own definition