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
0 practiced
For an NLP tokenizer, compare using a Trie, a hash map, and a deterministic acyclic word graph (DAWG) for token lookup and prefix matching. Discuss lookup complexity, memory overhead, prefix search/suggestions, and how to compress the structure (radix trie, DAWG compression, double-array trie). Include considerations for serializing to GPU memory and handling very large vocabularies (millions of tokens).
HardTechnical
0 practiced
Design a data structure that supports add(num) and get_median() for a stream of numbers. Implement (pseudocode) with two heaps approach: max-heap for the lower half and min-heap for the upper half. Explain rebalancing rules, handling duplicates, time and space complexity, and how to extend to sliding-window median where removals are required.
EasyTechnical
0 practiced
Implement a function to reverse a singly linked list in-place and return the new head. Provide Python code or clear pseudocode. Analyze time and space complexity and consider edge cases: empty list, single node, and very long lists (stack considerations).
HardTechnical
0 practiced
Your multi-GPU training job shows low GPU utilization because data loading and preprocessing on CPU cannot keep up. Diagnose likely causes attributable to data structures and code (e.g., heavy use of Python dictionaries/lists with high per-sample overhead, GIL contention, inefficient serialization). Propose a refactor with concrete data-structure replacements (mmap, contiguous arrays, C++ prefetch queues), zero-copy pinned memory transfers, and concurrency models to reduce CPU/GPU imbalance. Discuss complexity and memory trade-offs.
MediumTechnical
0 practiced
A BFS implementation currently loads the entire adjacency list into memory and uses a standard queue. For very large graphs (web-scale) that don't fit in memory, propose algorithmic and data-structure changes to perform BFS: discuss external-memory BFS, CSR on disk with mmap, frontier compression, and distributed graph processing approaches. Analyze IO patterns and trade-offs.

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.