A Java interview-practice repository synced from NeetCode.io, used to work through data-structure and algorithm patterns and keep accepted solutions easy to revisit.
Solutions are synced automatically from NeetCode.io.
This repository is used to practice reusable problem-solving patterns rather than simply accumulate accepted submissions.
For each problem, the focus is on:
- Recognizing the underlying pattern quickly
- Writing clear and idiomatic Java
- Understanding time and space complexity
- Handling edge cases deliberately
- Revisiting problems that required hints
Arrays & Hashing
Two Pointers
Sliding Window
Stack
Binary Search
Linked Lists
Trees
Tries
Heap / Priority Queue
Backtracking
Graphs
Dynamic Programming
Greedy
Intervals
Math & Geometry
Bit Manipulation
When revisiting a solution, I check:
- Can I explain the brute-force approach first?
- What observation enables the optimized solution?
- Which data structure or algorithmic pattern is being used?
- What are the time and space complexities?
- Which edge cases could break the implementation?
- Can I reproduce the solution without looking at the previous code?
The Java solutions emphasize:
- Appropriate use of collections such as
HashMap,HashSet,ArrayDequeandPriorityQueue - Clear method boundaries and naming
- Avoiding unnecessary allocations
- Correct handling of nulls, indexes and integer boundaries
- Interview-friendly implementations that are easy to explain
NeetCode sync currently groups submissions under a category directory, then by problem. Multiple submissions may exist for the same problem as the solution evolves.
Data Structures & Algorithms/
<problem>/
submission-<n>.java
The exact set of problems grows as new submissions are synced.
Algorithm practice is only one part of software engineering, but it is useful for sharpening reasoning under constraints. My broader engineering work focuses on Java, Spring Boot, Kafka, Kubernetes and cloud-native backend systems.