This repository contains my solutions to the CSES Problem Set, with a focus on building strong fundamentals in algorithms, data structures, and problem-solving for large-scale software engineering roles.
The emphasis is on correctness, optimal time–space complexity, and clean, readable implementations rather than competitive-programming shortcuts.
Most of the solutions fall into the following core categories:
-
Trees
- Tree traversals
- Binary lifting (LCA)
- Subtree DP
- Rerooting techniques
-
Graphs
- BFS / DFS
- Shortest paths (Dijkstra, Bellman–Ford)
- Topological sorting
- Connected components
- Strongly connected components
-
Dynamic Programming
- Classic 1D / 2D DP
- DP on trees
- State optimization
- Time and space tradeoff analysis
These topics closely mirror real-world problem-solving patterns used in backend and distributed systems interviews.
- C++
All solutions are written with attention to:
- Documenting the approach and thought process behind the solution to the problem
- Clear naming
- Modular logic
- Avoiding unnecessary macros or tricks
The CSES Problem Set provides a structured way to practice:
- Algorithmic thinking
- Edge-case handling
- Writing efficient code under constraints
It is particularly useful for interview preparation at companies that emphasize fundamentals, such as Google.
- LinkedIn: https://www.linkedin.com/in/ompatil15