Recently, one of our students passed the four rounds of Uber VO interviews with the help of ProgramHelp Remote Remote Noopener! Uber's interviews emphasize more on system design and business logic, so if you want to apply, you should pay attention to combining your personal skills with Uber's business needs and reflecting the "owner" culture.
Round 1 BQ
- Share one experience when you receive push request from managers
- Tell me about a difficult project you've worked on. How you got this project, how you collaborated with internal/external stakeholders, how was the process? How did you get this project, how you collaborated with internal/external stakeholders, how was the process?
Ideas: Uber's BQ will ask about internships or projects in detail. The BQ section focuses on logical thinking and presentation skills, so if you prepare in advance, you should have no problem.
Round 2 Coding
Given a binary search tree (BST) and a positive integer k, find the kth largest element in the binary search tree. Understanding and implementing this algorithm is required.
Idea: Start with the root node (10) and move to the right child node (20). Then continue to move right to node (40). Since node (40) has no children, increase the counter to 1. Move back to node (20) and increase the counter to 2. Finally, move to the left child of node (20), i.e. node (15), and increase the counter to 3 to find the third largest element (15).
Algorithm Complexity Analysis
Time complexity: in the worst case, the time complexity is O(n), as we may need to traverse all nodes.
Space complexity: the space complexity is O(h), where h is the height of the tree. This is because the depth of the recursive call stack is proportional to the height of the tree.
Follow up
Interviewer asks how to handle multiple k values. Store k values in a database and look up max_k . Record the number of nodes visited with a single node when performing a reverse middle order traversal. When a node value is in the k-value store, store the node's corresponding value in the result dictionary. The final result dictionary is returned, containing the node values corresponding to all k values.
Round 3 Coding
Given a number of locations, and flights between the locations. Find the longest path.
Idea: Consider two problems, the first is how to determine the starting point, and the second is how to find the longest path after determining the starting point. Similar to the method of Euler's path, here we need to find the starting point of those out of the degree is equal to the degree of entry plus one point, if we can not find, then the possible starting point is equal to all the locations. After finding the possible starting points, we iterate through each of them to find the longest path, which is achieved by using DFS with memoization.
When writing the code, the student first wrote half of it according to his own ideas, and then the result was wrong, and then gradually corrected the idea step by step under our prompting. The interviewer was also patient and guided. In the end, the algorithm was correctly implemented and run to verify the output.
Round 4 System Design
Designing an Uber-like ride-sharing platform that supports global rider-driver matching
Idea: Build a low-latency, highly available distributed system. First, the core difficulty that the system needs to solve is the location service, which can use GeoHash or Quadtree to quickly store and query the nearby drivers. Then, the system architecture adopts microservice design, decouples services such as user, location, matching, trip, payment, etc., unifies the scheduling through API gateway, and realizes asynchronous communication between services by using message queue to ensure the high scalability and fault tolerance of the system. Finally, it carries out global deployment and data sharding, such as sharding the database and cache by city or region, and reduces latency through multi-region data center deployment, while using dynamic pricing algorithms to regulate the balance between supply and demand in real time.
Uber VO Exam Preparation Advice
- Uber VO interview is more focused on specification, algorithms require clean code and complexity analysis, it is recommended to focus on the preparation of some high-frequency system design topics such as location-based services, real-time data streaming, etc., and clearly articulate the pros and cons of the different scenarios.
- It is important to study the target company in depth, understand the company's specific business model and technical challenges, and also understand the regulations, compliance requirements and business metrics related to ride-sharing. metrics.
Want to work in Uber? Programhelp has you covered with full assist!
If you are also preparing for Uber VO ? Come to us! We can provide you with full voice prompts from North American CS experts, help you cut through the ideas on key points, provide all-round guidance on OA/VO, and customize the most suitable solutions to solve your interview problems!