Skip to content

diyabajoria/dsa-problem-solving

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

230 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# DSA & Problem Solving

This repository contains my solutions to Data Structures and Algorithms problems that I solve regularly for practice and interview preparation.

I have solved all of these questions on Leetcode, and maximum solutions are written in Java. I have also coded a few questions in JavaScript and C++.

I started this repository to:
- stay consistent with DSA
- improve problem-solving skills
- understand patterns instead of memorizing solutions
- track my progress over time

---

## Topics Covered

- Arrays
- Strings
- Linked Lists
- Stacks & Queues
- Sliding Window
- Two Pointers
- Recursion & Backtracking
- Binary Search
- Greedy
- Dynamic Programming
- Trees 

---

## Language

- Java
- C++
- JavaScript

---

## Repository Structure

```text
Arrays/
Strings/
LinkedList/
Stack/
Queue/
Trees/
Graphs/
DynamicProgramming/

About

I try to write:

  • clean code
  • optimized solutions
  • understandable approaches

Some problems may also include multiple approaches or notes that helped me understand the concept better.

This repository is mainly a way for me to document my learning journey and stay disciplined with problem solving.

LeetCode Topics

Array

Problem Name Difficulty
0001-two-sum Easy
0011-container-with-most-water Medium
0033-search-in-rotated-sorted-array Medium
0046-permutations Medium
0048-rotate-image Medium
0053-maximum-subarray Medium
0055-jump-game Medium
0081-search-in-rotated-sorted-array-ii Medium
0137-single-number-ii Medium
0153-find-minimum-in-rotated-sorted-array Medium
0162-find-peak-element Medium
0167-two-sum-ii-input-array-is-sorted Medium
0189-rotate-array Medium
0198-house-robber Medium
0287-find-the-duplicate-number Medium
0455-assign-cookies Easy
0496-next-greater-element-i Easy
0503-next-greater-element-ii Medium
0682-baseball-game Easy
0860-lemonade-change Easy
1004-max-consecutive-ones-iii Medium
1732-find-the-highest-altitude Easy
1752-check-if-array-is-sorted-and-rotated Easy
1833-maximum-ice-cream-bars Medium
2196-create-binary-tree-from-descriptions Medium
2614-prime-in-diagonal Easy
3300-minimum-element-after-replacement-with-digit-sum Easy
3689-maximum-total-subarray-value-i Medium
3737-count-subarrays-with-majority-element-i Medium

Stack

Problem Name Difficulty
0020-valid-parentheses Easy
0225-implement-stack-using-queues Easy
0232-implement-queue-using-stacks Easy
0496-next-greater-element-i Easy
0503-next-greater-element-ii Medium
0682-baseball-game Easy
2130-maximum-twin-sum-of-a-linked-list Medium
3174-clear-digits Easy

Simulation

Problem Name Difficulty
0682-baseball-game Easy
3174-clear-digits Easy
3612-process-string-with-special-operations-i Medium

Binary Search

Problem Name Difficulty
0033-search-in-rotated-sorted-array Medium
0081-search-in-rotated-sorted-array-ii Medium
0153-find-minimum-in-rotated-sorted-array Medium
0162-find-peak-element Medium
0167-two-sum-ii-input-array-is-sorted Medium
0287-find-the-duplicate-number Medium
0633-sum-of-square-numbers Medium
1004-max-consecutive-ones-iii Medium

String

Problem Name Difficulty
0020-valid-parentheses Easy
0151-reverse-words-in-a-string Medium
0392-is-subsequence Easy
0459-repeated-substring-pattern Easy
0482-license-key-formatting Easy
0541-reverse-string-ii Easy
0680-valid-palindrome-ii Easy
1358-number-of-substrings-containing-all-three-characters Medium
3174-clear-digits Easy
3612-process-string-with-special-operations-i Medium

Two Pointers

Problem Name Difficulty
0011-container-with-most-water Medium
0019-remove-nth-node-from-end-of-list Medium
0141-linked-list-cycle Easy
0142-linked-list-cycle-ii Medium
0148-sort-list Medium
0151-reverse-words-in-a-string Medium
0167-two-sum-ii-input-array-is-sorted Medium
0189-rotate-array Medium
0287-find-the-duplicate-number Medium
0392-is-subsequence Easy
0455-assign-cookies Easy
0541-reverse-string-ii Easy
0633-sum-of-square-numbers Medium
0680-valid-palindrome-ii Easy
2095-delete-the-middle-node-of-a-linked-list Medium
2130-maximum-twin-sum-of-a-linked-list Medium

Math

Problem Name Difficulty
0048-rotate-image Medium
0089-gray-code Medium
0096-unique-binary-search-trees Medium
0189-rotate-array Medium
0633-sum-of-square-numbers Medium
1344-angle-between-hands-of-a-clock Medium
1952-three-divisors Easy
2614-prime-in-diagonal Easy
3300-minimum-element-after-replacement-with-digit-sum Easy
3658-gcd-of-odd-and-even-sums Easy

Dynamic Programming

Problem Name Difficulty
0053-maximum-subarray Medium
0055-jump-game Medium
0096-unique-binary-search-trees Medium
0124-binary-tree-maximum-path-sum Hard
0198-house-robber Medium
0392-is-subsequence Easy

Greedy

Problem Name Difficulty
0011-container-with-most-water Medium
0055-jump-game Medium
0455-assign-cookies Easy
0680-valid-palindrome-ii Easy
0860-lemonade-change Easy
1833-maximum-ice-cream-bars Medium
3689-maximum-total-subarray-value-i Medium

Hash Table

Problem Name Difficulty
0001-two-sum Easy
0141-linked-list-cycle Easy
0142-linked-list-cycle-ii Medium
0496-next-greater-element-i Easy
1358-number-of-substrings-containing-all-three-characters Medium
2196-create-binary-tree-from-descriptions Medium
3737-count-subarrays-with-majority-element-i Medium

Sliding Window

Problem Name Difficulty
1004-max-consecutive-ones-iii Medium
1358-number-of-substrings-containing-all-three-characters Medium

Prefix Sum

Problem Name Difficulty
1004-max-consecutive-ones-iii Medium
1732-find-the-highest-altitude Easy
3737-count-subarrays-with-majority-element-i Medium

Linked List

Problem Name Difficulty
0019-remove-nth-node-from-end-of-list Medium
0141-linked-list-cycle Easy
0142-linked-list-cycle-ii Medium
0148-sort-list Medium
0328-odd-even-linked-list Medium
2095-delete-the-middle-node-of-a-linked-list Medium
2130-maximum-twin-sum-of-a-linked-list Medium

Design

Problem Name Difficulty
0225-implement-stack-using-queues Easy
0232-implement-queue-using-stacks Easy

Queue

Problem Name Difficulty
0225-implement-stack-using-queues Easy
0232-implement-queue-using-stacks Easy

Tree

Problem Name Difficulty
0096-unique-binary-search-trees Medium
0100-same-tree Easy
0101-symmetric-tree Easy
0102-binary-tree-level-order-traversal Medium
0110-balanced-binary-tree Easy
0124-binary-tree-maximum-path-sum Hard
0199-binary-tree-right-side-view Medium
0543-diameter-of-binary-tree Easy
0701-insert-into-a-binary-search-tree Medium
2196-create-binary-tree-from-descriptions Medium

Breadth-First Search

Problem Name Difficulty
0100-same-tree Easy
0101-symmetric-tree Easy
0102-binary-tree-level-order-traversal Medium
0199-binary-tree-right-side-view Medium

Binary Tree

Problem Name Difficulty
0096-unique-binary-search-trees Medium
0100-same-tree Easy
0101-symmetric-tree Easy
0102-binary-tree-level-order-traversal Medium
0110-balanced-binary-tree Easy
0124-binary-tree-maximum-path-sum Hard
0199-binary-tree-right-side-view Medium
0543-diameter-of-binary-tree Easy
0701-insert-into-a-binary-search-tree Medium
2196-create-binary-tree-from-descriptions Medium

Depth-First Search

Problem Name Difficulty
0100-same-tree Easy
0101-symmetric-tree Easy
0110-balanced-binary-tree Easy
0124-binary-tree-maximum-path-sum Hard
0199-binary-tree-right-side-view Medium
0543-diameter-of-binary-tree Easy

Bit Manipulation

Problem Name Difficulty
0089-gray-code Medium
0137-single-number-ii Medium
0287-find-the-duplicate-number Medium

Sorting

Problem Name Difficulty
0148-sort-list Medium
0455-assign-cookies Easy
1833-maximum-ice-cream-bars Medium

Binary Search Tree

Problem Name Difficulty
0096-unique-binary-search-trees Medium
0701-insert-into-a-binary-search-tree Medium

Monotonic Stack

Problem Name Difficulty
0496-next-greater-element-i Easy
0503-next-greater-element-ii Medium

String Matching

Problem Name Difficulty
0459-repeated-substring-pattern Easy

Counting Sort

Problem Name Difficulty
1833-maximum-ice-cream-bars Medium
3737-count-subarrays-with-majority-element-i Medium

Divide and Conquer

Problem Name Difficulty
0053-maximum-subarray Medium
0148-sort-list Medium
3737-count-subarrays-with-majority-element-i Medium

Merge Sort

Problem Name Difficulty
0148-sort-list Medium
3737-count-subarrays-with-majority-element-i Medium

Enumeration

Problem Name Difficulty
1952-three-divisors Easy

Number Theory

Problem Name Difficulty
1952-three-divisors Easy
2614-prime-in-diagonal Easy
3658-gcd-of-odd-and-even-sums Easy

Segment Tree

Problem Name Difficulty
3737-count-subarrays-with-majority-element-i Medium

Matrix

Problem Name Difficulty
0048-rotate-image Medium
2614-prime-in-diagonal Easy

Backtracking

Problem Name Difficulty
0046-permutations Medium
0089-gray-code Medium

About

Consistent DSA and LeetCode practice in Java with optimized solutions and core problem-solving patterns.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors