# blankj/awesome-java-leetcode

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/blankj-awesome-java-leetcode).**

8,698 stars · 1,692 forks · Java

## Links

- GitHub: https://github.com/Blankj/awesome-java-leetcode
- awesome-repositories: https://awesome-repositories.com/repository/blankj-awesome-java-leetcode.md

## Topics

`algorithm` `algorithms` `datastructure` `datastructures` `facebook` `leetcode` `leetcode-java` `leetcode-solutions`

## Description

This project is a reference library of Java implementations for algorithmic coding challenges and data structure patterns. It serves as a study guide for technical interview preparation, providing a curated collection of LeetCode solutions organized by difficulty and algorithmic technique.

The collection includes a mapping system that associates specific algorithm problems with the companies that frequently use them in technical interviews.

The repository covers a wide range of capability areas, including tree algorithms for hierarchy construction and verification, string processing for sequence validation and pattern matching, and mathematical utilities for combinatorics and digit manipulation. It also provides implementations for search and sorting operations, as well as fundamental algorithmic patterns like dynamic programming and binary search.

## Tags

### Education & Learning Resources

- [Algorithm Study Collections](https://awesome-repositories.com/f/education-learning-resources/curricula-instructional-design/curricula-roadmaps/foundations-study-skills/pedagogical-support-study-resources/algorithm-study-collections.md) — Serves as a curated repository of coding challenge solutions and structured study plans for technical interviews.
- [Technical Interview Preparation](https://awesome-repositories.com/f/education-learning-resources/technical-interview-preparation.md) — Provides a curated collection of algorithm and data structure implementations specifically for software engineering job interview preparation.
- [Binary Search Implementations](https://awesome-repositories.com/f/education-learning-resources/binary-search-implementations.md) — Provides Java implementations of binary search to locate target values or insertion points in sorted arrays.
- [Data Structure Implementations](https://awesome-repositories.com/f/education-learning-resources/data-structure-implementations.md) — Provides educational Java code examples demonstrating the implementation of binary trees, linked lists, and stacks.
- [Depth-First Search Implementations](https://awesome-repositories.com/f/education-learning-resources/depth-first-search-implementations.md) — Implements depth-first search for state space exploration and calculating tree properties like maximum depth.
- [Breadth-First Search](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/algorithms/data-ordering-and-retrieval/breadth-first-search.md) — Implements breadth-first search strategies for traversing tree and graph data structures level by level.
- [LeetCode Solution References](https://awesome-repositories.com/f/education-learning-resources/leetcode-solution-references.md) — Offers a curated collection of Java implementations for LeetCode problems as a study reference.
- [Interview Problem Solving](https://awesome-repositories.com/f/education-learning-resources/problem-solving-guides/interview-problem-solving.md) — Implements a wide variety of Java solutions to coding challenges focused on interview-style problem solving.
- [Algorithm Reference Libraries](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education/algorithm-reference-libraries.md) — Serves as a reference library of standard algorithms organized by difficulty and technique for study.
- [Bracket Validation Algorithms](https://awesome-repositories.com/f/education-learning-resources/bracket-validation-algorithms.md) — Implements stack-based algorithms to verify the correct pairing and nesting of brackets in strings.
- [Depth Calculations](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/algorithm-data-structure-guides/binary-trees/depth-calculations.md) — Implements depth-first search to calculate the maximum height from the root to the farthest leaf node. ([source](https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0104/README.md))
- [Structural Comparisons](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/algorithm-data-structure-guides/binary-trees/structural-comparisons.md) — Implements depth-first search to verify if two binary trees are structurally identical and contain the same values. ([source](https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0100/README.md))
- [Symmetry & Mirroring](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/algorithm-data-structure-guides/binary-trees/symmetry-mirroring.md) — Implements algorithms to verify if a binary tree is a mirror image of itself. ([source](https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0101/README.md))
- [Technical Interview Guides](https://awesome-repositories.com/f/education-learning-resources/technical-interview-guides.md) — Provides a guide of Java code examples and problem patterns tailored for technical job interviews.

### Scientific & Mathematical Computing

- [Dynamic Programming](https://awesome-repositories.com/f/scientific-mathematical-computing/dynamic-programming.md) — Implements dynamic programming techniques for solving optimization problems by storing intermediate results of subproblems.
- [Arbitrary Precision Arithmetic Simulations](https://awesome-repositories.com/f/scientific-mathematical-computing/arbitrary-precision-arithmetic-simulations.md) — Implements manual carry logic to perform addition on integers represented as arrays of digits. ([source](https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0066/README.md))
- [Binary String Arithmetic](https://awesome-repositories.com/f/scientific-mathematical-computing/binary-string-arithmetic.md) — Provides carry-based addition algorithms for calculating the sum of two binary strings. ([source](https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0067/README.md))
- [Roman Numeral Converters](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/arithmetic-number-types/multiplication-algorithms/number-theory-algorithms/numeral-system-conversions/roman-numeral-converters.md) — Provides algorithms for translating Roman numeral symbols into decimal integers. ([source](https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0013/README.md))

### Software Engineering & Architecture

- [Two-Pointer Strategies](https://awesome-repositories.com/f/software-engineering-architecture/two-pointer-strategies.md) — Implements two-pointer algorithmic patterns for efficient in-place array manipulation and duplicate filtering.
- [Balanced Tree Constructions](https://awesome-repositories.com/f/software-engineering-architecture/balanced-tree-constructions.md) — Provides recursive logic to build balanced binary search trees by splitting sorted data.
- [Combinatorial Counting](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-programming/combinatorial-counting.md) — Implements combinatorial counting techniques using dynamic programming to find distinct ways to reach target states. ([source](https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0070/README.md))
- [Company-Specific Problem Mappings](https://awesome-repositories.com/f/software-engineering-architecture/problem-pattern-mappings/company-specific-problem-mappings.md) — Includes a mapping system that associates specific algorithmic problems with companies that frequently use them in interviews. ([source](https://github.com/Blankj/awesome-java-leetcode/blob/master/Companies.md))
- [Tree Path Sum Algorithms](https://awesome-repositories.com/f/software-engineering-architecture/tree-path-sum-algorithms.md) — Implements depth-first search to determine if any root-to-leaf path totals a specific target value. ([source](https://github.com/Blankj/awesome-java-leetcode/blob/master/note/0112/README.md))
