Skip to content

A Java-focused repository to master algorithms, data structures, and problem-solving techniques. Ideal for coding interview preparation and competitive programming challenges.

Notifications You must be signed in to change notification settings

crisnguyendev/problem-solving-practice-java

Repository files navigation

Problem Solving Practice Repository

Welcome to my Problem Solving Practice repository! 👋

🚀 About This Repository

This repository is dedicated to improving my problem-solving skills using Java. It focuses on mastering algorithms and data structures through hands-on practice and challenges.

Problems are sourced from platforms like Codeforces and LeetCode, as well as structured courses for systematic learning.

🎯 Goals

  • Strengthen algorithmic thinking and coding proficiency.
  • Prepare for coding interviews with comprehensive practice.
  • Build efficient and optimized solutions to challenging problems.

📚 Topics Covered

Arrays and Strings

  • Sliding Window
  • Two Pointers
  • Fast and Slow Pointers
  • Sorting Algorithms
  • Searching Algorithms
  • Prefix Sum

Linked Lists and Stacks

  • In-place Reversal of a Linked List
  • Linked Lists
  • Stacks and Queues
  • Queues and Deques

Trees and Graphs

  • Tree Breadth-First Search
  • Tree Depth-First Search
  • Topological Sort (Graph)
  • Graph Basics and Traversals
  • Graph Algorithms (DFS, BFS, Dijkstra's, Floyd-Warshall)

Dynamic Programming

  • 0/1 Knapsack
  • Longest Common Substring
  • Advanced Dynamic Programming
  • Bitwise XOR
  • Subsets

Greedy Algorithms

  • Merge Intervals
  • Cyclic Sort
  • Greedy Strategies

Divide and Conquer

  • Modified Binary Search

Advanced Topics

  • Two Heaps (Priority Queues)
  • K-way Merge
  • Trie (Prefix Tree)
  • Segment Trees and Fenwick Trees
  • Disjoint Set Union (Union-Find)
  • Computational Geometry
  • Number Theory
  • String Matching Algorithms (KMP, Rabin-Karp, Z-Algorithm)
  • Bit Manipulation Techniques

📂 Project Structure

root/ ├── DSA/ # Practice by topics (Leetcode & Codeforces) │ ├── arrays_and_strings/ │ ├── linked_lists_and_stacks/ │ ├── trees_and_graphs/ │ ├── dynamic_programming/ │ ├── greedy_algorithms/ │ ├── divide_and_conquer/ │ ├── advanced_topics/ │ └── utils/ ├── Leetcode/ # Practice by Contests and Study Plans │ ├── contests/ │ ├── study_plans/ ├── test/ │ ├── DSA/ │ ├── Leetcode/ ├── README.md ├── .gitignore ├── pom.xml ├── build.gradle ├── LICENSE 

Feel free to explore the repository and contribute your suggestions or solutions! 🚀

About

A Java-focused repository to master algorithms, data structures, and problem-solving techniques. Ideal for coding interview preparation and competitive programming challenges.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages