Amazon Software Engineer Interview Experience
Amazon · Entry level
Interview process
The OA was more challenging than I expected, the questions were more aligned with Competitive programming style. Recruiter was really supportive and informative. Still waiting on the next steps, which is the final round.
Interview rounds · 2
- 1
Recruiter screen
Behavioral- Q1. Why do you want to join Amazon?
- Q2. Describe the most technically complex project you have worked on and explain why it was complex.
- 2
Online assessment
CodingData Structures & Algorithms- Q1. The manager at the warehouse has decided to make changes to the inventory. Currently, the inventory has 'n' products, where the quality of the ith product after quality checks is represented by the array element quality[i]. The manager wants to create an optimal inventory, where the array of products quality follows the following property: -All occurrences of each quality value must be contiguous. In order to convert the inventory into an optimal inventory, the manager can do the following operation any number of times. 1. Choose two quality values x and y. 2. Replace every product with quality x to have quality y instead 3. This operation costs num_replacement units of money, where num_replacements is the number of products whose quality was changed. Given 'n' products and array quality, find the minimum amount of money the manager has to spend to convert the inventory into an optimal inventory. Note: the quality of a product can be negative indicating that the product is of poor quality. Example: Given n = 7, quality = [7,7,5,7,3,5,3] One of the optimal ways to convert: [7,7,5,7,3,5,3] spend 2 units of money-> [7,7,7,7,3,7,3] spends 2 units of money -> [7,7,7,7,7,7,7]
- Q2. Data scientists at are working on a logistics optimization tool to arrange delivery routes based on existing route patterns. A prototype algorithm takes in two integers, size, and target_sum, and generates a sequence of size size whose sum of elements equals target_sum, and the absolute values of the elements form a permutation of size size. The tool outputs the lexicographically smallest such sequence. Given two integers, size, and target_sum, return the lexicographically smallest sequence of integers such that 1. The sum of its elements equals target_sum. 2. The absolute values of its elements form a permutation of size size. Note: A sequence of size integers is a permutation if it contains all integers from 1 to size exactly once. For example [4, 1, 2, 5, 3] is a permutation but [2, 2, 3, 4, 5] is not. Given two permutations x and y, x is lexicographically smaller than y if there exists an index i where x[/] # y/], and for this smallest index i, [i] < [i]. This means that when comparing x and y element by element from the start, the first position at which they differ determines their order. If the element in x is less than the corresponding element in y at this position, x is considered smaller. Example Suppose size = 5, target_sum = 9 Some sequences of size size = 5 with target_sum = 9 are: Sequence Sum [-1, -2, 3, 4, 5] [-2, -1, 3, 4, 5] [-3, 1, 2, 4, 5] [3, 4, 5, -2, -1] [-3, 2, 1, 4, 5] Result: [-3, 1,2,4,5]
Tips from the candidate
For OA, Competitive Programming is the best source to practice from. For On-Site Leetcode medium/hard on DFS/BFS, Merge intervals, Trees, Greedy are the best algorithms to study.