The duration of the assessment was 2 hours and 25 minutes, divided into four sections. While you could revisit skipped questions within a section, switching between sections was not allowed.
Section 1: Debugging Round (20 Minutes)
Description: This section consisted of seven easy debugging questions. You could choose your preferred programming language before starting. The objective was to amend the given code to meet the requirements and clear all the test cases.
Difficulty: Easy
Section 2: Coding Round (70 Minutes)
Description: This round involved solving two coding questions in your preferred language.
Questions:
- Union and Intersection of Two Lists:
- Input: Two lists
- Output: Union and intersection of the two lists
- Second Number in an Array with Frequency 2:
- Input: An array of numbers
- Output: The second number in the array whose frequency is 2
Difficulty: Easy to Medium
Section 3: Advanced Subjective Round (70 Minutes)
Description: This section had five questions that needed to be answered within 70 minutes.
Questions:
- Balanced Parentheses:
- Check for balanced parentheses in an expression. Example
- JavaScript Snippet:
- Given a JavaScript snippet, write the correct output.
- HTML and CSS:
- Given a webpage mockup, write the corresponding HTML and CSS.
- JavaScript Form Validation:
- Write code for JavaScript form validation, including specified functionalities.
- Another JavaScript Snippet:
- Given another JavaScript snippet, write the correct output.
Difficulty: Easy to Medium
Outcome: Shortlisted students received an assignment from Amazon.
Section 4: Reasoning Ability Section (35 Minutes)
Description: This section had 24 questions that tested aptitude and reasoning ability.
Difficulty: Medium
Outcome: Out of all the candidates, only 60 were selected for the virtual interviews.
Virtual Interviews
Virtual interviews were conducted on Amazon Chime. A day before the interview, candidates received a meeting link and a Live Code link via email, outlining the interview process and preparation tips.
Round 1: Technical Interview
Interviewer: SDE2 at Amazon
Duration: 65 Minutes
Questions:
- OS-related Questions:
- Semaphores, deadlocks, RAID, preemptive scheduling, starvation, virtual memory, and cache memory.
- Coding Questions:
- Merge 3 Sorted Arrays:
- Input:
A = [1, 2, 3, 4, 5]
,B = [4, 5, 6]
,C = [7, 8, 9]
- Output:
S = [1, 2, 3, 4, 4, 5, 5, 6, 7, 8, 9]
- Approach: Compared all arrays at once; discussed pros/cons of two approaches and coded the former one.
- Input:
- Inorder Iterator for a Binary Tree:
- Create an iterator for Inorder traversal on a binary tree.
- Input: Array
[ next(),hasNext(),next(), next(), next(),hasNext(), next(), next(), hasNext()]
- Output: Array
[2,true, 3, 4, 5, true, 8, 9, false]
- Approach: Initially used a queue for traversal; later solved using a stack.
- Merge 3 Sorted Arrays:
Round 2: Technical Interview
Interviewers: Two interviewers
Duration: 110 Minutes
Questions:
- Vertical Sum in a Given Binary Tree:
- Input:
8 / \ 3 9 / \ 2 4 \ 5
- Output:
[-2:2 -1:3 0:12 1:14]
- Approach: Discussed different approaches using HashMap and TreeMap.
- Input:
- Asteroid Collision:
- Input:
[1,6,-2]
- Output:
[1,6]
- Approach: Similar to colliding cars problem; solved easily as it was previously attempted.
- Input:
- Clone a Linked List with Random Pointers:
- Approach: Used a HashMap for nodes of the original and duplicate lists.
Final Verdict
- Result: Selected for a 6-month internship