InterviewStack.io LogoInterviewStack.io

Data Structures and Complexity Questions

Comprehensive coverage of fundamental data structures, their operations, implementation trade offs, and algorithmic uses. Candidates should know arrays and strings including dynamic array amortized behavior and memory layout differences, linked lists, stacks, queues, hash tables and collision handling, sets, trees including binary search trees and balanced trees, tries, heaps as priority queues, and graph representations such as adjacency lists and adjacency matrices. Understand typical operations and costs for access, insertion, deletion, lookup, and traversal and be able to analyze asymptotic time and auxiliary space complexity using Big O notation including constant, logarithmic, linear, linearithmic, quadratic, and exponential classes as well as average case, worst case, and amortized behaviors. Be able to read code or pseudocode and derive time and space complexity, identify performance bottlenecks, and propose alternative data structures or algorithmic approaches to improve performance. Know common algorithmic patterns that interact with these structures such as traversal strategies, searching and sorting, two pointer and sliding window techniques, divide and conquer, recursion, dynamic programming, greedy methods, and priority processing, and when to combine structures for efficiency for example using a heap with a hash map for index tracking. Implementation focused skills include writing or partially implementing core operations, discussing language specific considerations such as contiguous versus non contiguous memory and pointer or manual memory management when applicable, and explaining space time trade offs and cache or memory behavior. Interview expectations vary by level from selecting and implementing appropriate structures for routine problems at junior levels to optimizing naive solutions, designing custom structures for constraints, and reasoning about amortized, average case, and concurrency implications at senior levels.

HardTechnical
122 practiced
Design a compact approximate-count data structure to track per-feature heavy hitters across millions of users with bounded memory, e.g., Count-Min Sketch. Explain update and query complexity, the probabilistic error bounds, and how you'd combine sketches from multiple workers to get global estimates.
HardTechnical
100 practiced
Design a data structure and implement the algorithm to maintain the median (or k-th quantile) of a sliding window of size k over a stream. The structure must support insert and remove for window updates and return median in O(1) or O(log k) time per update. Describe your approach and complexity.
HardSystem Design
91 practiced
Explain complexity and data-structure choices for implementing a publish-subscribe (pub/sub) subscription registry where subscribers match prefixes or attribute filters; discuss how tries, inverted indices, and bloom-filter-based pre-filters help performance and memory usage in high-throughput ML event systems.
MediumTechnical
87 practiced
Write a function in Python to detect a cycle in a directed graph given as adjacency lists. Use depth-first search with coloring or recursion stack method, analyze time/space complexity, and explain how you'd adapt it to detect cycles in extremely large graphs that don't fit in memory (external or streaming algorithms).
EasyTechnical
94 practiced
Explain what a trie (prefix tree) is and when it is preferable to a hash table. Include complexity (time and space) for insert, search, and delete, and discuss memory trade-offs and compression techniques (e.g., radix trees) for large vocabularies used in autocomplete or token indexing in NLP pipelines.

Unlock Full Question Bank

Get access to hundreds of Data Structures and Complexity interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.