# 10front-stage(+backstage)data structures@cod`IV

Based on my experience of algorithm interviewing at investment banks, high or low frequency hedge funds, 3rd-party financial firms like data providers, liquidity venues, a few deep-pocketed startups and a few WestCoast tech giants.. here’s the breakdown in terms of the data structure used in the original problem description.

• 5%of them are presented in nothing but a single integer or two integers or all integers under 10000. Calculation required.
• 5% of them are presented in huge stacks or queues
• — arrays in 1D or 2D
• 10% of them are presented in huge integer arrays, that require comparison, summation, subtraction or other simple calculations
• 15%+ of them are presented in a huge sequence of value-objects, not pre-sorted
• This is the default way to receive input data
• 10% of them are presented in huge 2D arrays including matrices, mazes and primitive images
• my #1 weakness
• — strings
• 15% of them are presented in nothing but a single char-array or two strings
• 10% of them are presented in huge collection of strings like words
• — linked node data structures:
• 10% of them are presented in long linked lists
• 10% of them are presented in huge unsorted trees
• 5% of them are presented in huge binary search trees
• 4% of them are presented in other huge directed graphs but not binary trees or linked lists
• 1% of them are presented as huge collection of points on an x/y coordinate plane. Always some math required, therefore rare.
• =====
• 100% in total

Any of these problems could require a solution using DP/Greedy, swapping, and auxiliary data structures like binary trees, hash tables, linked lists, stacks, queues or priority queues..

1. 70% need auxiliary arrays or hash table
2. 50% can be solved with recursion excluding DFT
3. 25% needs a breadth/depth-first tree traversal
4. 25% can use DP or greedy algo, usually in one iteration — tough
5. 20% can use an auxiliary BST
6. 10% can use an auxiliary tree but not a BST — tough and non-intuitive. Eg: many matrix problems
7. 10% can use an auxiliary linked list
8. 10% require recursion in a loop — tough
9. 10% can use an auxiliary stack or queue excluding BFT
10. 10% can use an auxiliary sorted vector
11. 5% can use an auxiliary matrix — tough and non-intuitive. Eg: EditDistance