Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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

Open more actions menu

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

Morty Proxy This is a proxified and sanitized view of the page, visit original site.