Mid Software Engineer (React) -
Algorithm Preparation Guide
This guide is sent before the interview so expectations are clear. The role is frontend-
focused, but algorithmic problem solving matters: React work often involves
transforming data, deduplicating records, searching/filtering collections, managing nested
UI state, optimizing rendering, and reasoning about performance.
The interview will not reward memorizing solutions. We want to see whether you can
understand a problem, choose an appropriate data structure, explain tradeoffs, implement
cleanly, and test edge cases.
What You Should Be Comfortable With
Complexity: explain time and space complexity using Big O.
Arrays and strings: indexing, scanning, sorting, prefix/suffix logic, frequency
counting.
Hash maps and sets: lookup, grouping, deduplication, counting.
Two pointers and sliding windows: efficient scans without unnecessary nested
loops.
Stacks and queues: validation, monotonic stack basics, BFS queues.
Binary search: sorted arrays, answer-space search, boundary handling.
Linked lists: pointer manipulation and cycle detection.
Trees and recursion: DFS, BFS, tree traversal, base cases.
Graphs: adjacency lists, visited sets, BFS/DFS, cycle detection.
Dynamic programming basics: recurrence, memoization, tabulation for simple
cases.
JavaScript/TypeScript implementation: Map, Set, arrays, null checks, readable
functions, and clear variable names.
Practice Problems
Start with the topics where you feel weakest. Most candidates should prioritize
Arrays/Hashing, Two Pointers, Sliding Window, Stack, Binary Search, Trees, and Graphs.
Arrays, Strings, Hash Maps
1. Two Sum
2. Contains Duplicate
3. Valid Anagram
4. Group Anagrams
5. Top K Frequent Elements
6. Product of Array Except Self
7. Longest Consecutive Sequence
Two Pointers
8. Valid Palindrome
9. Two Sum II - Input Array Is Sorted
10. 3Sum
11. Container With Most Water
Sliding Window and Linear Scans
12. Best Time to Buy and Sell Stock
13. Longest Substring Without Repeating Characters
14. Longest Repeating Character Replacement
15. Permutation in String
Stack
16. Valid Parentheses
17. Min Stack
18. Evaluate Reverse Polish Notation
19. Daily Temperatures
Binary Search
20. Binary Search
21. Search a 2D Matrix
22. Search in Rotated Sorted Array
23. Koko Eating Bananas
Linked Lists
24. Reverse Linked List
25. Merge Two Sorted Lists
26. Linked List Cycle
Trees
27. Invert Binary Tree
28. Maximum Depth of Binary Tree
29. Diameter of Binary Tree
30. Binary Tree Level Order Traversal
31. Validate Binary Search Tree
Graphs
32. Number of Islands
33. Clone Graph
34. Rotting Oranges
35. Course Schedule
Intervals, Heap, Dynamic Programming
36. Merge Intervals
37. Kth Largest Element in an Array
38. Climbing Stairs
39. House Robber
40. Coin Change
Useful References
NeetCode Roadmap - structured topic order for interview practice.
Big-O Cheat Sheet - quick complexity reference.
VisuAlgo - visual explanations of common algorithms and data structures.
LeetCode Explore - guided practice by topic.
MDN: Map, Set, and Array - useful JavaScript references.
Interview Expectations
During the interview, you should be ready to:
ask clarifying questions before coding;
explain the initial approach and complexity;
improve the solution when the brute-force version is too slow;
write working JavaScript or TypeScript;
handle edge cases without heavy prompting;
communicate tradeoffs clearly.
Clean, understandable code is more important than clever code. A good solution with
clear reasoning is preferred over a memorized solution that cannot be explained.
React Interview Part
There will also be a React-related part of the interview. Be ready to discuss and work
with components, props, state, hooks, rendering behavior, controlled forms, lists and
keys, effects, memoization, and practical TypeScript usage in React. We may ask you to
reason about a small UI implementation, fix a bug, or explain how you would structure a
component.