Category: Array coding problemA distributed processing pipeline accelerates sorting by assigning different portions of an array to separate worker threads. Given an integer array...Input: Array Output: Computed result
codingHardVerified Question#2
2. API Credit Manager
Category: Interval-based coding problemYou are building an API credit management system for a cloud platform. Each client account is assigned a custom credit policy that defines the...Input: Array of strings Output: Integer
codingHardVerified Question#3
3. Token Cache
Category: Tree coding problemA language model inference service caches previously computed token sequences to avoid redundant computation. The cache uses a compressed prefix tree...Input: List Output: Computed result
codingMediumVerified Question#4
4. Corrupted Sensor Detector
Category: Algorithm coding problemYou are managing a network of n environmental sensors labeled 0 to n - 1. Each sensor is either functioning correctly or corrupted, but you do...Input: List Output: Computed result
codingHardVerified Question#5
5. Config Store
Category: Trie-based coding problemYou are building a versioned configuration store for a deployment system. The store supports reading, writing, and deleting string configuration...Input: String Output: Computed result
codingHardVerified Question#6
6. Phrase Tokenizer
Category: String coding problemGiven a string of space-separated words and a dictionary of recognized phrases, split the string into tokens. Phrases in the dictionary represent...Input: String Output: Computed result
codingHarddynamic programming#1
1. [OA] Dynamic Programming — Maximum Subarray Sum for xAI's data processing
In xAI's data processing systems, we often encounter large arrays of user-generated metrics. Finding the maximum subarray sum quickly becomes essential to understand user behavior efficiently. Problem Statement: Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. - int max_sub_array_sum(List<int> nums): returns the maximum sum of the contiguous subarray. Example 1: Input: nums = [-2,1,-3,4,-1,2,1,-5,4] Output: 6 Explanation: The contiguous subarray [4,-1,2,1] has the largest sum = 6. Example 2: Input: nums = [1] Output: 1 Explanation: The contiguous subarray [1] has the largest sum = 1. Constraints: - 1 <= nums.length <= 3 * 10^4 - -10^4 <= nums[i] <= 10^4.
codingHardgraph#2
2. [OA] Graph Traversal — Find the shortest path in xAI's recommendation engine
In xAI's recommendation system, we need to efficiently find the shortest path to similar items based on user interactions. This will help improve user engagement. Problem Statement: Given a directed graph represented as an adjacency list, where each node represents an item and edges represent the relationship strength, implement a function that finds the shortest path from a start node to a target node using BFS. Return the list of nodes in the path from start to target, or an empty list if no path exists. - List[int] bfs_shortest_path(int start, int target): returns the list of integers representing the path from start to target. Example 1: Input: start = 0, target = 4 Output: [0, 1, 2, 4] Explanation: The shortest path from node 0 to 4 is through nodes 1 and 2. Example 2: Input: start = 0, target = 3 Output: [] Explanation: No path exists between node 0 and node 3. Constraints: - 1 <= start, target <= 10^4 - The graph can have up to 10^4 nodes and 2 * 10^4 edges.
codingHardgraph#3
3. [OA] Graph Traversal — Determine optimal path in xAI's conversational AI
For optimizing user interaction, xAI requires efficient routing through dialogue states in a conversation graph. You have a directed graph where each node represents a dialogue state and edges represent possible transitions. Write a function to return the shortest path from the initial state to a target state. Example method signature: def shortestPath(graph: Dict[int, List[int]], start: int, target: int) -> List[int]: returns a list of node values representing the shortest path.Example 1: Input: graph = {0: [1, 2], 1: [3], 2: [3], 3: []}, start = 0, target = 3 Output: [0, 1, 3] Explanation: One possible shortest path from the initial state (0) to target (3) is through state 1.Example 2: Input: graph = {0: [1], 1: [2], 2: [3], 3: []}, start = 0, target = 2 Output: [0, 1, 2] Explanation: This is a direct route from 0 to 2 passing through state 1.Constraints: - 1 <= graph.length <= 1000 - Input graph is a directed acyclic graph (DAG).
codingHarddynamic programming#4
4. [OA] Dynamic Programming — Optimize xAI's response time by calculating the longest subsequence
In order to improve the efficiency of our AI models, xAI needs to analyze the time complexity of certain input sequences in real-time. Given an array of integers nums, return the length of the longest increasing subsequence. Example method signature: def lengthOfLIS(self, nums: List[int]) -> int: returns the length of the longest increasing subsequence found in nums.Example 1: Input: nums = [10, 9, 2, 5, 3, 7, 101, 18] Output: 4 Explanation: The longest increasing subsequence is [2, 3, 7, 101], therefore its length is 4.Example 2: Input: nums = [0, 1, 0, 3, 2, 3] Output: 4 Explanation: The longest increasing subsequence is [0, 1, 2, 3], therefore its length is 4.Constraints: - 1 <= nums.length <= 2500 - -10^4 <= nums[i] <= 10^4
system designSeniorapi design#5
5. [OA] API Design — Constructing xAI's Machine Learning Model API
As xAI expands its machine learning capabilities, we need a robust API to manage model training, predictions, and evaluations. This API should handle requests efficiently and return results in a unified format. Problem Statement: Design an API that allows users to submit training data, request model training, and retrieve predictions. The API should support the following operations: POST /train, GET /predict, and GET /status. Ensure to consider versioning and error handling in your design. Example Operations: - POST /train: Accepts a JSON payload with data and returns a 201 status with a task ID. - GET /predict: Accepts a task ID and returns predictions based on trained data. - GET /status: Checks the status of the training job based on task ID. Constraints: - Ensure the API can handle a minimum of 1000 concurrent requests with low latency. - Should support flexible data formats (CSV, JSON).
To enhance performance for xAI's machine learning algorithms, we need a fast, in-memory caching system to store frequently accessed data. This system should allow for efficient data retrieval and support for automatic eviction of old data. Problem Statement: Design a custom cache that supports the following operations: put(key: int, value: int): void and get(key: int): int. When the cache reaches its capacity, it should invalidate the least recently used (LRU) item. - class LRUCache: - def __init__(self, capacity: int): Initializes the cache with a positive size capacity. - def get(self, key: int) -> int: Returns the value of the key if the key exists, otherwise returns -1. - def put(self, key: int, value: int) -> None: Updates or adds the value if the key is not present. When the cache reaches its capacity, it should invalidate the least recently used item before adding the new item. Example 1: Input: LRUCache cache = new LRUCache(2); cache.put(1, 1); cache.put(2, 2); cache.get(1); // returns 1 cache.put(3, 3); // evicts key 2 cache.get(2); // returns -1 (not found) Example 2: Input: LRUCache cache = new LRUCache(1); cache.put(1, 1); cache.get(1); // returns 1 cache.put(2, 2); // evicts key 1 cache.get(1); // returns -1 (not found) Constraints: - 1 <= capacity <= 3000 - 0 <= key <= 10000 - 0 <= value <= 10^9.
system designHardapi design#7
7. [OA] User Analytics — Design an API for tracking user engagement in xAI products
To enhance the user experience, xAI seeks to implement a robust tracking system for user engagement metrics across all its platforms. Design an API to handle various types of engagement tracking with methods to log, retrieve, and aggregate user interactions.Method signatures: - trackEvent(userId: int, eventType: str, timestamp: str) -> None: Logs an engagement event for a user at a specific timestamp. - getUserEngagement(userId: int) -> List[str]: Returns a list of event types the user engaged in. - aggregateEvents(eventType: str) -> int: Returns the count of how many times an event type has occurred across all users.Example Success Criteria: - The system must handle at least 10 million user interactions per day. - Ensure data consistency and integrity in logging system. - Provide efficient query responses with minimal latency.Constraints: - All eventType values will be unique strings.
system designHardcaching#8
8. [OA] Caching — Implement a simple in-memory cache for xAI's AI model responses
To accelerate response times from our AI models, xAI needs to implement a caching mechanism for the frequently accessed data. Design and implement a simple LRU Cache class that supports the following operations: - get(key: int) -> int: Retrieve the value of the key if the key exists in the cache, otherwise return -1. - put(key: int, value: int) -> None: Update the value of the key if the key exists. If the key does not exist, add the key-value pair to the cache. If the cache reaches its capacity, it should invalidate the least recently used item before inserting a new item.Example Method Signatures: - def get(self, key: int) -> int - def put(self, key: int, value: int) -> NoneExample 1: Input: cache = LRUCache(2), cache.put(1, 1), cache.put(2, 2), cache.get(1) Output: 1Example 2: Input: cache.put(3, 3), cache.get(2) Output: -1 Explanation: The least recently used key (2) was removed because the cache reached its capacity.Constraints: - capacity is at most 3000.