CS-OA cs-vo Faang

Amazon VO 四连解密 – back to back – Amazon 面经 – apple 面经 – 面试代面

近期Amazon和apple等科技巨头都流行back to back ,即连续进行4-5轮面试,并根据所有面试的综合结果来决定是否发放offer。这样的面试方式能够极大的提高面试效率,然而对候选人的考验也非常的巨大,首先连续的进行5个小时的面试对体力是个非常巨大的考验,其次中间的break时间也远不够复习的。


1st Round:

Interviewers: ** and ** (Shadow)

  • Focus Areas:
    • Ownership
    • Customer Obsession
    • Coding (Problem solving)

2nd Round:

Interviewer: ** (Bar Raiser)

  • Focus Areas:
    • Deliver Results
    • Learn & Be Curious
    • Coding (Logical and maintainable)

3rd Round:

Interviewer:** (Hiring Manager)

  • Focus Areas:
    • Have Backbone: Disagree and Commit
    • Earn Trust
    • System Design

4th Round:

Interviewer: **

  • Focus Areas:
    • Invent & Simplify
    • Dive Deep
    • Coding (Data structures and algorithms)

Amazon Interview Process and Solution Explanation

Interview Round

  • Interviewer: Not specified
  • Focus Area: Coding (Data Structures and Algorithms)

Problem Statement

Suppose that there are two services in AWS, BillProducerService and BillConsumerService.

  • BillProducerService produces Bill objects as an output.
  • BillConsumerService consumes Bill objects as an input.
  • Each Bill has a timestamp.
  • Each Bill should be consumed in order of the timestamp, earliest first.
  • Bills may be produced from BillProducerService out of order with respect to the timestamp.
  • Each Bill can be discarded after it has been consumed by BillConsumerService.

Create a data structure that can temporarily hold Bill objects after they are produced but before they are consumed.

  • You must expose one method for BillProducerService to invoke and one method for BillConsumerService to invoke.
  • An optimal time complexity is desired for the methods and the underlying data structure.


The problem requires a data structure that can store Bill objects and allows retrieving them in the order of their timestamps. The solution involves using a PriorityQueue:

  1. PriorityQueue: This data structure automatically orders its elements based on a comparator. Here, we use the timestamp of the Bill object to maintain order.
  2. Insertion Complexity: Adding a new Bill to the PriorityQueue takes O(log⁡n)O(\log n)O(logn) time, where nnn is the number of elements in the queue. This is because the PriorityQueue needs to maintain the heap property.
  3. Retrieval Complexity: Retrieving and removing the smallest (oldest) element also takes O(log⁡n)O(\log n)O(logn) time.
  4. Space Complexity: The space complexity is O(n)O(n)O(n), as we need to store all the bills until they are consumed.

Interview Process Simulation


The interviewer introduces themselves and explains the problem. They ask you to implement a solution that can temporarily hold Bill objects and ensure they are consumed in the correct order.


You start by defining the Bill class with id and timestamp attributes. Next, you implement the BillDataStructure class using a PriorityQueue to store Bill objects.

You explain your choice of data structure, mentioning the time complexity of insertion and retrieval operations. You then proceed to write the methods storeBillFromProducer and retrieveOldestBillToConsumer.


The interviewer might ask questions like:

  • Why did you choose a PriorityQueue?
  • Can you explain the time complexity of your solution?
  • What happens if the PriorityQueue is empty when retrieveOldestBillToConsumer is called?

You answer these questions, highlighting the efficiency of your solution and the exception handling in case of an empty queue.


The interviewer concludes the interview, and you thank them for their time. You are asked if you have any questions about the team or the projects they work on.

Post-Interview Reflection

  • You recall the questions asked and your responses.
  • You think about any areas where you could improve, such as handling edge cases or optimizing further.
  • You reflect on the feedback provided by the interviewer, if any.

Final Notes

  • Practice coding problems related to data structures and algorithms regularly.
  • Understand the time and space complexities of different data structures.
  • Be prepared to explain your thought process and justify your choices during the interview.


面试结束后,客户对我们辅助的面试表现感到满意。通过这次面试辅助服务,客户不仅向面试官展示了自己的算法能力和编码水平,还在与面试官的交流中学习到了新的优化思路和技巧。Amazon 的面试题目设计得很有挑战性,但也非常贴近实际应用。

希望这篇面经对未来准备 Amazon 面试的同学们有所帮助!



Leave a Reply

Your email address will not be published. Required fields are marked *