22 practice questions for OpenAI technical interviews
codingHardVerified
Count Machines In A Tree
Category: Tree coding problemYou are given a tree-structured network of machines where each node represents a machine. Machines can only communicate with their parent and...Input: String Output: Computed result
codingMediumVerified
Implement cd Command
Category: Algorithm coding problemImplement a simplified version of the Unix cd command. Given a current directory path and a relative destination path, return the final absolute...Input: Given input Output: Computed result
codingMediumVerified
Largest Subgrid
Category: Grid/matrix coding problemYou are given a 2D grid of non-negative integers and a maximum sum constraint. Find the largest size of a square sub-grid such that all...Input: 2D grid Output: Integer
codingHardVerified
Memory Allocator
Category: Linked list coding problem# Memory Allocator Design a memory allocator that manages a contiguous block of memory. Implement malloc and free operations with efficient...Input: Linked list Output: Computed result
system designHardVerified
Top 5 Open AI System Design Questions
Category: Trie-based system design problem# System Design Questions - OpenAI A collection of commonly asked system design questions from OpenAI interviews.Input: Given input Output: Computed result
codingHardVerified
Toy Language Type Inference
Category: String coding problemImplement a type system for a toy programming language that supports primitives, tuples, and generics. Your task is to represent types and infer...Input: List Output: Computed result
codingMediumVerified
Virus Spread
Category: Grid/matrix coding problemSimulate the spread of a virus through a grid. Each cell can be in one of three states: healthy, infected, or immune. *This is similar to a leetcode...Input: 2D grid Output: Integer
codingMediumVerified
Bot-Enabled Messaging System
Category: String coding problemYou are building a chat system that supports human users and automated bots. Messages are added to a channel log and may trigger bot responses. The...Input: List Output: Computed result
codingHardVerified
Connection Tracker
Category: Algorithm coding problemDesign a social network system that tracks follow relationships between users and preserves a full history through snapshots. The system allows...Input: List Output: Computed result
codingMediumVerified
GPU Credit Ledger
Category: String coding problemYou are designing a system to manage GPU credits. Each credit grant is valid during a specific time window. Events may arrive out of chronological...Input: String Output: Computed result
codingMediumVerified
GPU Credit Manager
Category: String coding problemYou are designing a system to manage GPU credits. Each credit grant is valid during a specific time window. Events may arrive out of chronological...Input: String Output: Computed result
codingHardVerified
In-Memory SQL Engine
Category: String coding problemDesign an in-memory SQL database that supports creating tables, inserting rows with automatic type inference, and querying with filtering and sorting.Input: List Output: Computed result
codingHardVerified
Persistent Key-Value Store
Category: Trie-based coding problemYou are designing a persistent key-value store that serializes its state to a binary storage medium. Native serialization (e.g., JSON, pickle,...Input: Array Output: Computed result
codingHardVerified
Shard Rebalancer
Category: String coding problemYou are implementing a shard management system for a distributed key-value store. Each shard is identified by a string and covers a contiguous range...Input: String Output: Computed result
codingHardVerified
IP Address Iterator
Category: String coding problemEvery device on the public internet is identified by an IPv4 address written in dotted-decimal notation as "A.B.C.D", where each octet is an...Input: String Output: Computed result
codingMediumVerified
Version Support Finder
Category: Binary search coding problemA software company maintains a sorted list of version strings in ascending chronological order. A critical feature was introduced in one version, and...Input: List Output: Computed result
codingMediumVerified
Monster Battle Simulator
Category: String coding problemSimulate a deterministic, turn-based battle between two ordered teams of monsters. Execute the fight step by step and produce a chronological battle...Input: List Output: Computed result
codingMediumVerified
Distributed Tree Messaging
Category: Tree coding problemYou are implementing a message-passing protocol for a distributed system organized as a rooted n-ary tree. Each node represents a machine and...Input: List Output: Printed output
system designHarddata structure
[OA] MedianFinder — Implement a data structure for keeping OpenAI's result metrics
OpenAI often needs to compute the median of predicted metrics in real-time. This requires an efficient data structure to retrieve the median quickly while processing continuous streams of data. ### Class Definition Class MedianFinder should implement the following methods: - addNum(num: int) -> None: Adds a number to the data structure. - findMedian() -> float: Returns the median of all added numbers.### Example 1: Input: medianFinder = MedianFinder(); medianFinder.addNum(1); medianFinder.addNum(2); medianFinder.findMedian() Output: 1.5 Explanation: The median of [1,2] is 1.5### Example 2: Input: medianFinder.addNum(3); medianFinder.findMedian() Output: 2 Explanation: The median of [1,2,3] is 2.### Constraints: - -10^5 <= num <= 10^5 - There will be at most 1,000,000 calls to addNum and findMedian.
system designHardcaching
[OA] LRU Cache — Design an LRU Cache for OpenAI's model predictions
OpenAI needs an efficient caching system to store previously computed model predictions, optimizing resource usage and response time. ### Class Definition Class LRUCache should implement the following methods: - get(key: int) -> int: Returns the value of the key if the key exists, otherwise returns -1. - put(key: int, value: int) -> None: Updates the value of the key if the key exists existing and moves the key to the front of the cache. Otherwise, it adds the key/value pair to the cache.### Example 1: Input: cache = LRUCache(2); cache.put(1, 1); cache.put(2, 2); cache.get(1) Output: 1 Explanation: Returns 1### Example 2: Input: cache.put(3, 3); cache.get(2) Output: -1 Explanation: Returns -1 since the cache reached its capacity; LRU (key = 2) was evicted.### Constraints: - The capacity of the cache will be between 1 and 1000. - All keys will be unique.
codingHardsliding window
[OA] Sliding Window — Optimize model inference response times
OpenAI's inference API must handle continuous input streams efficiently, ensuring optimal latency and throughput. Given an array of integers, find the maximum sum of a subarray of size k.### Function Signature - def max_sum_subarray_of_k(arr: List[int], k: int) -> int: Returns the maximum sum of the subarray of size k.### Example 1: Input: arr = [1, 2, 3, 4, 5], k = 3 Output: 12 Explanation: The maximum sum subarray of size 3 is [3, 4, 5] with a sum of 12.### Example 2: Input: arr = [2, 3, 4, 1, 5], k = 2 Output: 7 Explanation: The maximum sum is from the subarray [4, 1].### Constraints: - 0 < len(arr) <= 1000 - 1 <= k <= len(arr)
codingHarddynamic programming
[OA] Dynamic Programming — Optimize OpenAI's text completion efficiency
OpenAI's text completion models require efficient algorithms to generate responses in real-time while minimizing computational cost. Given an array of integers representing the tokens in a sequence, you need to calculate the maximum non-adjacent sum of tokens that can be chosen from this array.### Function Signature - def max_non_adjacent_sum(tokens: List[int]) -> int: Returns the maximum sum of non-adjacent integers.### Example 1: Input: [3, 2, 5, 10, 7] Output: 15 Explanation: The optimal choice is to take tokens 3, 10, and 2 which gives the maximum sum 15 without selecting adjacent values.### Example 2: Input: [9, 1, 2, 8, 3] Output: 17 Explanation: The optimal choice is to take tokens 9, 8, and 3.### Constraints: - 0 < len(tokens) <= 1000 - 0 <= tokens[i] <= 1000
Start practicing OpenAI questions
Sign up for free to access walkthroughs, AI-generated questions, and more.