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.

MediumTechnical
101 practiced
Implement Quickselect in Python to find the k-th smallest element in an unsorted list with average O(n) time. Provide an in-place implementation, discuss pivot selection strategies (randomized vs median-of-medians), explain worst-case behavior, and state how to modify to guarantee linear worst-case time.
HardTechnical
77 practiced
A batch job currently sorts all users by activity every minute to produce the top-100 active users, but this is expensive at scale. Propose algorithms and data structures to avoid full sorts each minute: incremental updates, maintaining a min-heap of size k, stream algorithms (Space-Saving/Count-Min), and approaches to implement this in a distributed environment with partial aggregators. Discuss latency, correctness, and fault tolerance trade-offs.
HardTechnical
101 practiced
Compare a naive recursive Fibonacci function, a memoized recursive version, and an iterative bottom-up dynamic programming implementation. Derive the time and space complexity for each approach, explain why memoization reduces exponential complexity to linear, and discuss trade-offs in recursion stack usage, locality, and when to prefer iterative tabulation.
MediumTechnical
98 practiced
Compare tries (prefix trees), compressed tries (radix trees), and hash maps for prefix lookup/autocomplete. Discuss time complexity per operation, memory overhead, cache behavior, and practical trade-offs. Also mention ternary search trees and when they might be chosen for memory vs speed balance.
MediumTechnical
72 practiced
When would you choose a binary search tree (BST) over a hash table for storing key-value pairs in an ML feature store? Discuss use-cases that require ordered traversal or range queries, compare average and worst-case performance, and describe balanced-tree alternatives (AVL, Red-Black, B-tree) for production systems.

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.