Personal Docs

Mastering Algorithms: One Problem at a Time

A curated open-source hub of 48+ DSA solutions in Java — with progress tracking and GitHub Pages.

DSA Practice Hub
JavaAlgorithmsData StructuresGitHub Pages

A curated collection of 48+ Data Structures and Algorithms solutions in Java. Focusing on clean code, optimization, and deep understanding. Hosted as a static site on GitHub Pages as an interactive study guide.

Progress Overview (98% Complete)

  • Searching Algorithms (2/2):: Binary Search, Linear Search.
  • Number Systems (2/2):: Binary to Decimal conversion, Index operations.
  • Array Problems (6/7):: Second Largest, Subarray, Prefix Sum, Kadane's Algorithm, Trapping Rain Water, Buy & Sell Stock.
  • Sorting Algorithms (5/5):: Bubble Sort, Bubble Sort (Kth Smallest), Insertion Sort, Merge Sort, Selection Sort.
  • Matrix Problems (2/3):: Diagonal Sum, Staircase Matrix Search, Spiral Matrix (in progress).
  • Pattern Problems (6/6):: Diamond, Rhombus, String Compression, and more.
  • String Problems (4/4):: Palindrome, Uppercase Conversion, Lexicographic Comparison, Shortest Path.
  • Recursion & Backtracking (9/9):: Fibonacci, Reverse Array, Palindrome, N-to-1 Backtracking, and more.
  • Hashing (3/3):: Number Hashing, Character Hashing, All Character Hashing.
  • OOP Concepts:: Getter/Setter, OOP principles.
  • Loop & Control Flow:: Complete coverage of loop patterns and control structures.

Goals

  • Clean Code:: Solutions written with readability and maintainability in mind.
  • Optimization:: Focus on time and space complexity analysis for each problem.
  • Deep Understanding:: Each problem approached to build foundational knowledge, not just solve it.

Tech & Setup

  • Language:: Java (50.8% of codebase)
  • Hosting:: GitHub Pages with static HTML (49.2%)
  • IDE Workflow:: Compile with javac, run with java, test with edge cases.
  • Organization:: All solutions in /dsa directory, progress tracked in README.

How to Use This Hub

  • Browse Solutions Online:: Visit omn7.github.io/DSA/ to see the full progress tracker with links to every solution file.
  • Clone the Repo:: Run git clone https://github.com/omn7/DSA.git to get all Java source files locally.
  • Navigate to Solutions:: All solutions live in the /dsa directory. Each file is named after the problem (e.g., spiralmatrix2d.java, kadanesalgo.java).
  • Compile & Run:: Open a terminal, navigate to the dsa folder, compile with javac filename.java, and run with java filename.
  • Study the Approach:: Each solution is written with readability in mind — clear variable names, comments explaining the logic, and optimized for time/space complexity.
  • Use as Reference:: The progress tracker in the README categorizes problems by topic, making it easy to find solutions for specific algorithm types during interview prep.

How I Built It

This project started as my personal DSA study journal. When I began learning Data Structures and Algorithms with Java, I wanted a structured way to track progress and revisit solutions.

I organized everything in a single /dsa directory with one Java file per problem. The naming convention is straightforward — the filename describes the problem (bubblesort.java, palindrome.java, trappingrainwater.java). No complex folder hierarchies, just flat and searchable.

For each problem, my workflow was: understand the problem thoroughly, plan the approach on paper, code the solution, test it with edge cases, optimize for time/space complexity, and commit with a descriptive message.

I built a progress tracker in the README using Markdown tables. Each row shows the problem name, completion status (checkmark or in-progress), and a link to the source file. I also added learning statistics showing completion percentages per category — this helped me identify weak areas to focus on.

To make it accessible to others, I created a static HTML site deployed on GitHub Pages with a GitHub Actions workflow. The site (omn7.github.io/DSA/) serves as a visual frontend for the repository, making it easier to browse than raw GitHub.

The codebase is 50.8% Java (solutions) and 49.2% HTML (the static site). The repo is set up as a public template so other students can fork it and track their own DSA journey with the same structure.

Currently at 48/49 problems solved (98% complete), with Spiral Matrix 2D being the last remaining problem.