Skip to content

Latest commit

 

History

430 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algorithms and Data Structures

Repo Traffic

Algorithms and Data Structures


Introduction

This repository contains my LeetCode solutions and notes from studying algorithms and data structures. Solutions are grouped by study week, and each problem directory includes its source code and problem description.

Repository Structure

algorithms/
├── docs/           # Guides for organizing and submitting solutions
├── resources/      # Images used by the guides
├── week-1/         # Week 1 solutions
├── week-2-3/       # Week 2 and Week 3 solutions
├── week-4/         # Week 4 solutions
├── week-5/         # Week 5 solutions
├── week-6/         # Week 6 solutions
├── week-7/         # Week 7 solutions
└── README.md       # Repository overview and LeetHub topic index

Practice Progress

Period Solutions
Week 1 10
Week 2-3 20
Week 4 10
Week 5 10
Week 6 10
Week 7 21
Total 81

Documentation

Guide Description
Code Organization Organize solutions in the repository with GitHub Desktop.
LeetHub Submission Submit accepted LeetCode solutions with LeetHub-3.0.

LeetHub Integration

LeetHub-3.0 uploads accepted solutions and updates the topic index in this README. The weekly grouping is maintained manually and is not managed by the extension.

View the topic index generated by LeetHub-3.0

LeetCode Topics

String

Problem Name Difficulty
0003-longest-substring-without-repeating-characters Medium
0020-valid-parentheses Easy
0049-group-anagrams Medium
0079-word-search Medium
0179-largest-number Medium
0383-ransom-note Easy
0389-find-the-difference Easy
0539-minimum-time-difference Medium
0556-next-greater-element-iii Medium
0657-robot-return-to-origin Easy
0796-rotate-string Easy
0921-minimum-add-to-make-parentheses-valid Medium
1021-remove-outermost-parentheses Easy
1209-remove-all-adjacent-duplicates-in-string-ii Medium
1370-increasing-decreasing-string Easy
1544-make-the-string-great Easy
1662-check-if-two-string-arrays-are-equivalent Easy
1974-minimum-time-to-type-word-using-special-typewriter Easy

Stack

Problem Name Difficulty
0020-valid-parentheses Easy
0150-evaluate-reverse-polish-notation Medium
0225-implement-stack-using-queues Easy
0232-implement-queue-using-stacks Easy
0496-next-greater-element-i Easy
0735-asteroid-collision Medium
0739-daily-temperatures Medium
0921-minimum-add-to-make-parentheses-valid Medium
1021-remove-outermost-parentheses Easy
1209-remove-all-adjacent-duplicates-in-string-ii Medium
1544-make-the-string-great Easy

Array

Problem Name Difficulty
0026-remove-duplicates-from-sorted-array Easy
0034-find-first-and-last-position-of-element-in-sorted-array Medium
0049-group-anagrams Medium
0053-maximum-subarray Medium
0075-sort-colors Medium
0079-word-search Medium
0088-merge-sorted-array Easy
0150-evaluate-reverse-polish-notation Medium
0153-find-minimum-in-rotated-sorted-array Medium
0169-majority-element Easy
0179-largest-number Medium
0200-number-of-islands Medium
0209-minimum-size-subarray-sum Medium
0217-contains-duplicate Easy
0268-missing-number Easy
0414-third-maximum-number Easy
0463-island-perimeter Easy
0495-teemo-attacking Easy
0496-next-greater-element-i Easy
0539-minimum-time-difference Medium
0542-01-matrix Medium
0561-array-partition Easy
0622-design-circular-queue Medium
0643-maximum-average-subarray-i Easy
0690-employee-importance Medium
0704-binary-search Easy
0733-flood-fill Easy
0735-asteroid-collision Medium
0739-daily-temperatures Medium
0773-sliding-puzzle Hard
0875-koko-eating-bananas Medium
0934-shortest-bridge Medium
0977-squares-of-a-sorted-array Easy
0994-rotting-oranges Medium
1304-find-n-unique-integers-sum-up-to-zero Easy
1346-check-if-n-and-its-double-exist Easy
1388-pizza-with-3n-slices Hard
1431-kids-with-the-greatest-number-of-candies Easy
1662-check-if-two-string-arrays-are-equivalent Easy
1926-nearest-exit-from-entrance-in-maze Medium

Two Pointers

Problem Name Difficulty
0019-remove-nth-node-from-end-of-list Medium
0026-remove-duplicates-from-sorted-array Easy
0075-sort-colors Medium
0086-partition-list Medium
0088-merge-sorted-array Easy
0142-linked-list-cycle-ii Medium
0160-intersection-of-two-linked-lists Easy
0556-next-greater-element-iii Medium
0876-middle-of-the-linked-list Easy
0977-squares-of-a-sorted-array Easy
1237-find-positive-integer-solution-for-a-given-equation Medium
1346-check-if-n-and-its-double-exist Easy

Sorting

Problem Name Difficulty
0049-group-anagrams Medium
0075-sort-colors Medium
0088-merge-sorted-array Easy
0169-majority-element Easy
0179-largest-number Medium
0217-contains-duplicate Easy
0268-missing-number Easy
0389-find-the-difference Easy
0414-third-maximum-number Easy
0539-minimum-time-difference Medium
0561-array-partition Easy
0977-squares-of-a-sorted-array Easy
1346-check-if-n-and-its-double-exist Easy

Hash Table

Problem Name Difficulty
0003-longest-substring-without-repeating-characters Medium
0049-group-anagrams Medium
0142-linked-list-cycle-ii Medium
0160-intersection-of-two-linked-lists Easy
0169-majority-element Easy
0217-contains-duplicate Easy
0268-missing-number Easy
0383-ransom-note Easy
0389-find-the-difference Easy
0496-next-greater-element-i Easy
0690-employee-importance Medium
1346-check-if-n-and-its-double-exist Easy
1370-increasing-decreasing-string Easy

Counting

Problem Name Difficulty
0169-majority-element Easy
0383-ransom-note Easy
1370-increasing-decreasing-string Easy

Bit Manipulation

Problem Name Difficulty
0268-missing-number Easy
0389-find-the-difference Easy

Sliding Window

Problem Name Difficulty
0003-longest-substring-without-repeating-characters Medium
0209-minimum-size-subarray-sum Medium
0643-maximum-average-subarray-i Easy

Simulation

Problem Name Difficulty
0495-teemo-attacking Easy
0657-robot-return-to-origin Easy
0735-asteroid-collision Medium

Linked List

Problem Name Difficulty
0019-remove-nth-node-from-end-of-list Medium
0024-swap-nodes-in-pairs Medium
0083-remove-duplicates-from-sorted-list Easy
0086-partition-list Medium
0109-convert-sorted-list-to-binary-search-tree Medium
0142-linked-list-cycle-ii Medium
0160-intersection-of-two-linked-lists Easy
0203-remove-linked-list-elements Easy
0206-reverse-linked-list Easy
0237-delete-node-in-a-linked-list Medium
0622-design-circular-queue Medium
0876-middle-of-the-linked-list Easy

Recursion

Problem Name Difficulty
0024-swap-nodes-in-pairs Medium
0203-remove-linked-list-elements Easy
0206-reverse-linked-list Easy

Design

Problem Name Difficulty
0225-implement-stack-using-queues Easy
0232-implement-queue-using-stacks Easy
0622-design-circular-queue Medium

Queue

Problem Name Difficulty
0225-implement-stack-using-queues Easy
0232-implement-queue-using-stacks Easy
0622-design-circular-queue Medium

Math

Problem Name Difficulty
0069-sqrtx Easy
0150-evaluate-reverse-polish-notation Medium
0268-missing-number Easy
0367-valid-perfect-square Easy
0539-minimum-time-difference Medium
0556-next-greater-element-iii Medium
1237-find-positive-integer-solution-for-a-given-equation Medium
1304-find-n-unique-integers-sum-up-to-zero Easy

Binary Search

Problem Name Difficulty
0034-find-first-and-last-position-of-element-in-sorted-array Medium
0069-sqrtx Easy
0153-find-minimum-in-rotated-sorted-array Medium
0209-minimum-size-subarray-sum Medium
0268-missing-number Easy
0367-valid-perfect-square Easy
0704-binary-search Easy
0875-koko-eating-bananas Medium
1237-find-positive-integer-solution-for-a-given-equation Medium
1346-check-if-n-and-its-double-exist Easy

Greedy

Problem Name Difficulty
0179-largest-number Medium
0561-array-partition Easy
0921-minimum-add-to-make-parentheses-valid Medium
1388-pizza-with-3n-slices Hard
1974-minimum-time-to-type-word-using-special-typewriter Easy

Counting Sort

Problem Name Difficulty
0561-array-partition Easy

Divide and Conquer

Problem Name Difficulty
0053-maximum-subarray Medium
0109-convert-sorted-list-to-binary-search-tree Medium
0169-majority-element Easy

Tree

Problem Name Difficulty
0104-maximum-depth-of-binary-tree Easy
0109-convert-sorted-list-to-binary-search-tree Medium
0111-minimum-depth-of-binary-tree Easy
0226-invert-binary-tree Easy
0543-diameter-of-binary-tree Easy
0559-maximum-depth-of-n-ary-tree Easy
0690-employee-importance Medium
0872-leaf-similar-trees Easy

Binary Search Tree

Problem Name Difficulty
0109-convert-sorted-list-to-binary-search-tree Medium

Binary Tree

Problem Name Difficulty
0104-maximum-depth-of-binary-tree Easy
0109-convert-sorted-list-to-binary-search-tree Medium
0111-minimum-depth-of-binary-tree Easy
0226-invert-binary-tree Easy
0543-diameter-of-binary-tree Easy
0872-leaf-similar-trees Easy

Monotonic Stack

Problem Name Difficulty
0496-next-greater-element-i Easy
0739-daily-temperatures Medium

Interactive

Problem Name Difficulty
1237-find-positive-integer-solution-for-a-given-equation Medium

Dynamic Programming

Problem Name Difficulty
0053-maximum-subarray Medium
0542-01-matrix Medium
0773-sliding-puzzle Hard
1388-pizza-with-3n-slices Hard

Heap (Priority Queue)

Problem Name Difficulty
1388-pizza-with-3n-slices Hard

Depth-First Search

Problem Name Difficulty
0079-word-search Medium
0104-maximum-depth-of-binary-tree Easy
0111-minimum-depth-of-binary-tree Easy
0200-number-of-islands Medium
0226-invert-binary-tree Easy
0463-island-perimeter Easy
0543-diameter-of-binary-tree Easy
0547-number-of-provinces Medium
0559-maximum-depth-of-n-ary-tree Easy
0690-employee-importance Medium
0733-flood-fill Easy
0785-is-graph-bipartite Medium
0841-keys-and-rooms Medium
0872-leaf-similar-trees Easy
0934-shortest-bridge Medium

Breadth-First Search

Problem Name Difficulty
0104-maximum-depth-of-binary-tree Easy
0111-minimum-depth-of-binary-tree Easy
0200-number-of-islands Medium
0226-invert-binary-tree Easy
0463-island-perimeter Easy
0542-01-matrix Medium
0547-number-of-provinces Medium
0559-maximum-depth-of-n-ary-tree Easy
0690-employee-importance Medium
0733-flood-fill Easy
0773-sliding-puzzle Hard
0785-is-graph-bipartite Medium
0841-keys-and-rooms Medium
0934-shortest-bridge Medium
0994-rotting-oranges Medium
1926-nearest-exit-from-entrance-in-maze Medium

Matrix

Problem Name Difficulty
0079-word-search Medium
0200-number-of-islands Medium
0463-island-perimeter Easy
0542-01-matrix Medium
0733-flood-fill Easy
0773-sliding-puzzle Hard
0934-shortest-bridge Medium
0994-rotting-oranges Medium
1926-nearest-exit-from-entrance-in-maze Medium

Union-Find

Problem Name Difficulty
0200-number-of-islands Medium
0547-number-of-provinces Medium
0785-is-graph-bipartite Medium

Graph Theory

Problem Name Difficulty
0547-number-of-provinces Medium
0785-is-graph-bipartite Medium
0841-keys-and-rooms Medium

Backtracking

Problem Name Difficulty
0079-word-search Medium
0773-sliding-puzzle Hard

Memoization

Problem Name Difficulty
0773-sliding-puzzle Hard

Prefix Sum

Problem Name Difficulty
0209-minimum-size-subarray-sum Medium

String Matching

Problem Name Difficulty
0796-rotate-string Easy

About

LeetCode solutions focused on algorithms, data structures, and problem-solving skills.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages