This repository contains my systematic practice of Data Structures and Algorithms using JavaScript, focused on interview readiness for software engineering roles in the US job market.
The goal of this repo is not just to solve problems, but to:
- Build strong fundamentals
- Write clean, explainable JavaScript solutions
- Understand time and space complexity
- Practice problem-solving patterns used in real interviews
I use JavaScript intentionally because:
- It aligns with my full-stack background (React, Node.js)
- Many US companies allow JavaScript in coding interviews
- It demonstrates strong problem-solving independent of language choice
All solutions are written with clarity, correctness, and interview-style explanations in mind.
- Traversal
- In-place operations
- Prefix sums
- Edge case handling
- Frequency counting
- Lookup optimization
- Space vs time tradeoffs
- Palindrome checks
- Subarrays and substrings
- Optimized window-based solutions
- DFS / BFS
- Traversals
- Stack behavior and base cases
- Memoization
- Bottom-up DP
- Overlapping subproblems
For every problem, I follow this process:
- Understand the problem and constraints
- Think of a brute-force solution
- Optimize using known patterns
- Implement a clean JavaScript solution
- Analyze time and space complexity
- Consider edge cases
This mirrors how problems are evaluated in real interviews.
Make sure Node.js is installed.
node filename.js