If you appreciate my work, please 🌟 this repository. It motivates me. 🚀 🚀
DSA Sheet: https://bit.ly/pranayDSAsheet
Data-Structures-and-Algorithms
│ LICENSE
│ PREREQUISITES.md
│ README.md
│ SYLLABUS.md
│
├───01. DataStructures
│ ├───01. Linked List
│ │ ├───1. Singly-Linked-List
│ │ │ ├───Basic Operations
│ │ │ │ | README.md
│ │ │ │ | SinglyLL.cpp
│ │ │ │ | SinglyLL.java
| | | | └───01. Find Middle Element
| | | | README.md
| | | | find_middle_element.cpp
| | | | output.png
│ │ │ │
│ │ │ └───InterviewBit Questions
│ │ │ ├───01. ReverseLL
│ │ │ │ README.md
│ │ │ │ solution 1.java
│ │ │ │
│ │ │ ├───02. IntersectionOfLL
│ │ │ │ README.md
│ │ │ │ solution 2.java
│ │ │ │
│ │ │ ├───03. Kth Node From Middle
│ │ │ │ README.md
│ │ │ │ solution 3.java
│ │ │ │
│ │ │ ├───04. Palindrome List GQ
│ │ │ │ README.md
│ │ │ │ solution 4.java
│ │ │ │
│ │ │ ├───05. Merge Two Sorted List GQ
│ │ │ │ Apna College Solution (Good Explaination).md
│ │ │ │ solution 5 ApnaCollege.java
│ │ │ │ solution 5 Striver.java
│ │ │ │ Striver Solution.md
│ │ │ │
│ │ │ ├───06. Remove Duplicates From Sorted List
│ │ │ │ README.md
│ │ │ │ solution 6.java
│ │ │ │
│ │ │ ├───07. Remove Duplicates From Sorted List- II GQ
│ │ │ │ README.md
│ │ │ │ solution 7.java
│ │ │ │
│ │ │ ├───08. Remove nth Node from List end GQ
│ │ │ │ README.md
│ │ │ │ solution 8.java
│ │ │ │
│ │ │ ├───09. Add two no. as List
│ │ │ │ README.md
│ │ │ │ solution 9.java
│ │ │ │
│ │ │ ├───10. Reverse LL in K group GQ
│ │ │ │ Iterative Solution Self.md
│ │ │ │ Recursive Solution Apna College.md
│ │ │ │ solution 10-AC.java
│ │ │ │ solution 10-self.java
│ │ │ │
│ │ │ ├───11. Rotate LL by K place
│ │ │ │ README.md
│ │ │ │ solution 11.java
│ │ │ │
│ │ │ └───12. Reverse LL-ii
│ │ │ README.md
│ │ │ solution 12.java
│ │ │
│ │ ├───2. Doubly-Linked-List
│ │ │ ├───Basic Operations
│ │ │ │ DoublyLL.java
│ │ │ │ README.md
│ │ │ │
│ │ │ └───Questions
│ │ │ └───1. Two Pair Sum
│ │ │ 2 pair sum Q.pdf
│ │ │ 2 pair sum solution.java
│ │ │
│ │ └───3. Circular-Linked-List
│ │ CircularLL.java
│ │ README.md
│ │
│ ├───02. Stack
│ │ ├───Basic Operation
│ │ │ ├───1. Stack using Array
│ │ │ │ README.md
│ │ │ │ Stack_Array.java
│ │ │ │
│ │ │ ├───2. Stack using LinkList
│ │ │ │ README.md
│ │ │ │ Stack_LinkList.java
│ │ │ │
│ │ │ ├───3. Stack using Queue
│ │ │ │ README.md
│ │ │ │ Stack using Queue.cpp
│ │ │ │
│ │ │ └───4. Stack using Queue
│ │ │ README.md
│ │ │ Stack_Priority.java
│ │ │
│ │ ├───Infix Prefix Postfix
│ │ │ ├───01. Infix to Postfix
│ │ │ │ infixPostfix.cpp
│ │ │ │ InfixPostfix.java
│ │ │ │ pseudocode.png
│ │ │ │ README.md
│ │ │ │
│ │ │ ├───02. Infix to Prefix
│ │ │ │ InfixPrefix.java
│ │ │ │ pseudocode.png
│ │ │ │ README.md
│ │ │ │
│ │ │ ├───03. Postfix to Infix
│ │ │ │ │ PostfixInfix.java
│ │ │ │ │ pseudocode.png
│ │ │ │ │ README.md
│ │ │ │ │
│ │ │ │ └───01. Postfix to Infix In C++
│ │ │ │ README.md
│ │ │ │ postfix_to_infix.cpp
│ │ │ │ output.png
│ │ │ │ output.png
│ │ │ │
│ │ │ ├───04. Prefix to Infix
│ │ │ │ PrefixInfix.java
│ │ │ │ pseudocode.png
│ │ │ │ README.md
│ │ │ │
│ │ │ ├───05. Postfix to Prefix
│ │ │ │ PostfixPrefix.java
│ │ │ │ pseudocode.png
│ │ │ │ README.md
│ │ │ │
│ │ │ └───06. Prefix to Postfix
│ │ │ PrefixPostfix.java
│ │ │ pseudocode.png
│ │ │ README.md
│ │ │
│ │ └───LeetCode Questions
│ │ ├───01. Remove Outermost Parentheses #1021
│ │ │ Remove Outermost Parentheses.md
│ │ │ Solution.java
│ │ │
│ │ ├───02. Remove All Adjacent Duplicates In String #1047
│ │ │ Remove All Adjacent Duplicates In String.md
│ │ │ Solution.java
│ │ │ Solution_Vikash.java
│ │ │
│ │ ├───03. Build an Array With Stack Operations #1441
│ │ │ Resources.md
│ │ │ Solution.java
│ │ │
│ │ ├───04. Baseball Game #682
│ │ │ Resources.md
│ │ │ Solution.java
│ │ │
│ │ ├───05. Next Greater Element I #496
│ │ │ Resources.md
│ │ │ Solution_Optimised.java
│ │ │ Solution_self.java
│ │ │
│ │ ├───06. Crawler Log Folder #1598
│ │ │ Resources.md
│ │ │ Solution.java
│ │ │
│ │ ├───07. Make The String Great #1544
│ │ │ Resources.md
│ │ │ Solution_self.java
│ │ │ Solution_Vikash.java
│ │ │
│ │ ├───08. Backspace String Compare #844
│ │ │ Resources.md
│ │ │ Solution_self.java
│ │ │ Solution_Vikash.java
│ │ │
│ │ ├───09. Valid Parentheses #20
│ │ │ Resources.md
│ │ │ Solution.java
│ │ │
│ │ ├───10. Design a Stack With Increment Operation #1381
│ │ │ Resources.md
│ │ │ Solution.java
│ │ │
│ │ ├───11. Minimum Add to Make Parentheses Valid #921
│ │ │ Resources.md
│ │ │ Solution.java
│ │ │
│ │ ├───12. Score of Parentheses #856
│ │ │ Resources.md
│ │ │ Solution.java
│ │ │
│ │ ├───13. Daily Temperatures #739
│ │ │ Resources.md
│ │ │ Solution.java
│ │ │
│ │ └───14. Validate Stack Sequences #946
│ │ Resources.md
│ │ Solution.java
│ │
│ ├───03. Queue
│ │ └───Basic Operations
│ │ ├───01. Queue using Array
│ │ │ pseudocode.png
│ │ │ Queue_Array.java
│ │ │ Resources.md
│ │ │
│ │ ├───02. Queue using Linked List
│ │ │ Queue_LinkedList.java
│ │ │ Resources.md
│ │ │
│ │ ├───03. Queue using Stacks
│ │ │ Queue_Stack.java
│ │ │ Resources.md
│ │ │
│ │ ├───04. Circular Queue using Array
│ │ │ CircularQueue_Array.java
│ │ │ Resources.md
│ │ │
│ │ ├───05. Circular Queue using Linked List
│ │ │ CircularQueue_LinkedList.java
│ │ │ Resources.md
│ │ │
│ │ ├───06. Dequeue using circular array
│ │ │ Dequeue_CircularArray.java
│ │ │ Resources.md
│ │ │
│ │ └───07. Priority Queue
│ │ KLargestElement.java
│ │ PriorityQueue.java
│ │ README.md
│ │
│ ├───04. Tree
│ │ ├───01. Introduction to Binary Tree
│ │ │ README.md
│ │ │ traversals.cpp
│ │ │
│ │ ├───02. Binary Search Tree
│ │ │ BinarySearchTree.cpp
│ │ │ BinarySearchTree.java
│ │ │ Readme.md
│ │ │
│ │ ├───03. AVL Tree
│ │ │ AVLTree.cpp
│ │ │ AVLTree.java
│ │ │ README.md
│ │ │
│ │ ├───04. Trie
│ │ │ README.md
│ │ │ Trie_Array.java
│ │ │ Trie_HashMap.java
│ │ │
│ │ └───05. Heap
│ │ MinHeap.cpp
│ │ MinHeap.java
│ │ README.md
│ │
│ ├───05. ArrayList
│ │ ArrayList.java
│ │
│ ├───06. HashMap
│ │ MyHashMap.java
│ │ README.md
│ │
│ ├───07. Set
│ │ MyHashSet.java
│ │ MyLinkedHashSet.java
│ │ MyTreeSet.java
│ │ README.md
│ │ SubarrayWith0Sum.java
│ │
│ └───08. Graph
│ MyGraph.java
│ README.md
│
└───02. Algorithms
│ README.md
│
├───01. Arrays
│ ├───01. Reverse an Array
│ │ README.md
│ │ ReverseArray.java
│ │
│ ├───02. Find the maximum and minimum element in an array
│ │ README.md
│ │
│ ├───03. 215. Kth Largest Element in an Array
│ │ brute_force.java
│ │ README.md
│ │ Using_priorityQueue.java
│ │
│ ├───04. 75. Sort Colors OR Sort012
│ │ brute_force.java
│ │ Optimal_Solution.java
│ │ README.md
│ │ Solution.cpp
│ │
│ ├───05. Move all negative numbers to one side
│ │ README.md
│ │ Solution.java
│ │
│ ├───06. Find the Union and Intersection of Two Arrays
│ │ README.md
│ │ Union_and_Intersection.java
│ │ Using_BinarySearch.java
│ │
│ ├───07. Cyclically Rotate an Array
│ │ Brute_Force.java
│ │ Optimal_Solution.java
│ │ README.md
│ │
│ ├───08. Kadane's Algorithm
│ │ ├───53. Maximum Subarray
│ │ │ README.md
│ │ │ Solution.java
│ │ │
│ │ └───918. Maximum Sum Circular Subarray
│ │ README.md
│ │ Solution.java
│ │ Solution2.java
│ │
│ ├───09. Minimize the Heights II
│ │ README.md
│ │ Solution.java
│ │
│ ├───10. 45. Jump Game II
│ │ README.md
│ │ Solution.java
│ │
│ └───11. Jumping on the Clouds
│ README.md
│ Solution.java
│ Solution2.java
│
├───02. Sorting
│ │ README.md
│ │
│ ├───01. Bubble Sort
│ │ BubbleSort.java
│ │ README.md
│ │
│ ├───02. InsertionSort
│ │ Insertion_Sort.java
│ │ README.md
│ │
│ ├───03. Selection Sort
│ │ README.md
│ │ Selection_Sort.java
│ │
│ ├───04. Quick Sort
│ │ Quick_Sort.java
│ │ README.md
│ │
│ ├───05. Merge Sort
│ │ Merge_Sort.java
│ │ README.md
│ │
│ ├───06. Count Sort
│ │ Count_Sort.java
│ │ README.md
│ │
│ ├───07. Radix Sort
│ │ Radix_Sort.java
│ │ README.md
│ │
│ ├───08. Heap Sort
│ │ README.md
│ │
│ └───09. Cyclic Sort
│ CyclicSort.java
│
├───03. Searching
│ ├───01. Linear Search
│ │ Linear_Search.java
│ │ Notes.pdf
│ │ README.md
│ │
│ ├───02. Binary Search
│ │ Binary_Search.java
│ │ Notes.pdf
│ │ OrderAgnostic_BinarySearch.java
│ │ README.md
│ │
│ └───Problems
│ ├───01. 1295. Find Numbers with Even Number of Digits
│ │ README.md
│ │ Solution.java
│ │
│ ├───02. 1672. Richest Customer Wealth
│ │ README.md
│ │ Solution.java
│ │
│ ├───03. Floor in a Sorted Array
│ │ README.md
│ │ Solution.java
│ │
│ ├───04. Ceil in a Sorted Array
│ │ README.md
│ │ Solution.java
│ │
│ ├───05. 744. Find Smallest Letter Greater Than Target
│ │ README.md
│ │ Solution.java
│ │
│ ├───06. 34. Find First and Last Position of Element in Sorted Array
│ │ README.md
│ │ Solution.java
│ │
│ ├───07. Find position of an element in an infinite sorted array
│ │ BS_in_InfiniteArray.java
│ │ README.md
│ │
│ ├───08. 852. Peak Index in a Mountain Array
│ │ README.md
│ │ Solution1.java
│ │ Solution2.java
│ │
│ ├───09. 162. Find Peak Element
│ │ README.md
│ │ Solution.java
│ │
│ ├───10. 1095. Find in Mountain Array
│ │ README.md
│ │ Solution.java
│ │
│ ├───11. 33. Search in Rotated Sorted Array
│ │ README.md
│ │ Solution.java
│ │
│ ├───12. Find the Rotation Count in Rotated Sorted array
│ │ README.md
│ │
│ ├───13. 410. Split Array Largest Sum
│ │ Dry run.pdf
│ │ README.md
│ │ Solution.java
│ │
│ ├───14. 69. Sqrt(x)
│ │ README.md
│ │ Solution.java
│ │ Solution2.java
│ │
│ ├───15. 278. First Bad Version
│ │ README.md
│ │ Solution.java
│ │
│ └───16. 167. Two Sum II - Input array is sorted
│ better_approach.java
│ brute-force.java
│ optimal_approach.java
│ README.md
│
|────04. Recursion
| │ README.md
| │
| └───Problems
| ├───01. Maximum and Minimum Value in an Array
| │ README.md
| │ Solution.java
| │
| ├───02. Sum triangle from array
| │ README.md
| │ Solution.java
| │
| ├───03. 509. Fibonacci Number
| │ README.md
| │
| └───04. 344. Reverse String
| README.md
| Solution.java
|
|───05. Graphs
| |
| └───01. Depth First Search
| |
| └───01. README.md
| DFS.cpp
| output.png
|
└───06. Love Babbar DSA Sheet Solutions
└───01. Arrays
|
|─── README.md
|
└───01. reverse_the array.cpp
=======
├── 01. DataStructures
│ ├── 01. Linked List
│ │ ├── 1. Singly-Linked-List
│ │ │ ├── Basic Operations
│ │ │ │ ├── Find Middle Element
│ │ │ │ │ ├── find_middle_element.cpp
│ │ │ │ │ ├── output.png
│ │ │ │ │ └── README.md
│ │ │ │ ├── README.md
│ │ │ │ ├── SinglyLL.cpp
│ │ │ │ └── SinglyLL.java
│ │ │ └── InterviewBit Questions
│ │ │ ├── 01. ReverseLL
│ │ │ │ ├── README.md
│ │ │ │ └── solution 1.java
│ │ │ ├── 02. IntersectionOfLL
│ │ │ │ ├── README.md
│ │ │ │ └── solution 2.java
│ │ │ ├── 03. Kth Node From Middle
│ │ │ │ ├── README.md
│ │ │ │ └── solution 3.java
│ │ │ ├── 04. Palindrome List GQ
│ │ │ │ ├── README.md
│ │ │ │ └── solution 4.java
│ │ │ ├── 05. Merge Two Sorted List GQ
│ │ │ │ ├── Apna College Solution (Good Explaination).md
│ │ │ │ ├── solution 5 ApnaCollege.java
│ │ │ │ ├── solution 5 Striver.java
│ │ │ │ └── Striver Solution.md
│ │ │ ├── 06. Remove Duplicates From Sorted List
│ │ │ │ ├── README.md
│ │ │ │ └── solution 6.java
│ │ │ ├── 07. Remove Duplicates From Sorted List- II GQ
│ │ │ │ ├── README.md
│ │ │ │ └── solution 7.java
│ │ │ ├── 08. Remove nth Node from List end GQ
│ │ │ │ ├── README.md
│ │ │ │ └── solution 8.java
│ │ │ ├── 09. Add two no. as List
│ │ │ │ ├── README.md
│ │ │ │ └── solution 9.java
│ │ │ ├── 10. Reverse LL in K group GQ
│ │ │ │ ├── Iterative Solution Self.md
│ │ │ │ ├── Recursive Solution Apna College.md
│ │ │ │ ├── solution 10-AC.java
│ │ │ │ └── solution 10-self.java
│ │ │ ├── 11. Rotate LL by K place
│ │ │ │ ├── README.md
│ │ │ │ └── solution 11.java
│ │ │ └── 12. Reverse LL-ii
│ │ │ ├── README.md
│ │ │ └── solution 12.java
│ │ ├── 2. Doubly-Linked-List
│ │ │ ├── Basic Operations
│ │ │ │ ├── DoublyLL.java
│ │ │ │ └── README.md
│ │ │ └── Questions
│ │ │ └── 1. Two Pair Sum
│ │ │ ├── 2 pair sum Q.pdf
│ │ │ └── 2 pair sum solution.java
│ │ └── 3. Circular-Linked-List
│ │ ├── CircularLL.java
│ │ └── README.md
│ ├── 02. Stack
│ │ ├── Basic Operation
│ │ │ ├── 1. Stack using Array
│ │ │ │ ├── README.md
│ │ │ │ └── Stack_Array.java
│ │ │ ├── 2. Stack using LinkList
│ │ │ │ ├── README.md
│ │ │ │ └── Stack_LinkList.java
│ │ │ ├── 3. Stack using Queue
│ │ │ │ ├── README.md
│ │ │ │ └── Stack_Queue.java
│ │ │ └── 4. Stack using Priority Queue
│ │ │ ├── README.md
│ │ │ └── Stack_Priority.java
│ │ ├── Infix Prefix Postfix
│ │ │ ├── 01. Infix to Postfix
│ │ │ │ ├── infixPostfix.cpp
│ │ │ │ ├── InfixPostfix.java
│ │ │ │ ├── pseudocode.png
│ │ │ │ └── README.md
│ │ │ ├── 02. Infix to Prefix
│ │ │ │ ├── InfixPrefix.java
│ │ │ │ ├── pseudocode.png
│ │ │ │ └── README.md
│ │ │ ├── 03. Postfix to Infix
│ │ │ │ ├── PostfixInfix.java
│ │ │ │ ├── pseudocode.png
│ │ │ │ └── README.md
│ │ │ ├── 04. Prefix to Infix
│ │ │ │ ├── PrefixInfix.java
│ │ │ │ ├── pseudocode.png
│ │ │ │ └── README.md
│ │ │ ├── 05. Postfix to Prefix
│ │ │ │ ├── PostfixPrefix.java
│ │ │ │ ├── pseudocode.png
│ │ │ │ └── README.md
│ │ │ └── 06. Prefix to Postfix
│ │ │ ├── PrefixPostfix.java
│ │ │ ├── pseudocode.png
│ │ │ └── README.md
│ │ └── LeetCode Questions
│ │ ├── 01. Remove Outermost Parentheses #1021
│ │ │ ├── Remove Outermost Parentheses.md
│ │ │ └── Solution.java
│ │ ├── 02. Remove All Adjacent Duplicates In String #1047
│ │ │ ├── Remove All Adjacent Duplicates In String.md
│ │ │ ├── Solution.java
│ │ │ └── Solution_Vikash.java
│ │ ├── 03. Build an Array With Stack Operations #1441
│ │ │ ├── Resources.md
│ │ │ └── Solution.java
│ │ ├── 04. Baseball Game #682
│ │ │ ├── Resources.md
│ │ │ └── Solution.java
│ │ ├── 05. Next Greater Element I #496
│ │ │ ├── Resources.md
│ │ │ ├── Solution_Optimised.java
│ │ │ └── Solution_self.java
│ │ ├── 06. Crawler Log Folder #1598
│ │ │ ├── Resources.md
│ │ │ └── Solution.java
│ │ ├── 07. Make The String Great #1544
│ │ │ ├── Resources.md
│ │ │ ├── Solution_self.java
│ │ │ └── Solution_Vikash.java
│ │ ├── 08. Backspace String Compare #844
│ │ │ ├── Resources.md
│ │ │ ├── Solution_self.java
│ │ │ └── Solution_Vikash.java
│ │ ├── 09. Valid Parentheses #20
│ │ │ ├── Resources.md
│ │ │ └── Solution.java
│ │ ├── 10. Design a Stack With Increment Operation #1381
│ │ │ ├── Resources.md
│ │ │ └── Solution.java
│ │ ├── 11. Minimum Add to Make Parentheses Valid #921
│ │ │ ├── Resources.md
│ │ │ └── Solution.java
│ │ ├── 12. Score of Parentheses #856
│ │ │ ├── Resources.md
│ │ │ └── Solution.java
│ │ ├── 13. Daily Temperatures #739
│ │ │ ├── Resources.md
│ │ │ └── Solution.java
│ │ └── 14. Validate Stack Sequences #946
│ │ ├── Resources.md
│ │ └── Solution.java
│ ├── 03. Queue
│ │ └── Basic Operations
│ │ ├── 01. Queue using Array
│ │ │ ├── pseudocode.png
│ │ │ ├── Queue_Array.java
│ │ │ └── README.md
│ │ ├── 02. Queue using Linked List
│ │ │ ├── Queue_LinkedList.java
│ │ │ └── README.md
│ │ ├── 03. Queue using Stacks
│ │ │ ├── Queue_Stack.java
│ │ │ └── README.md
│ │ ├── 04. Circular Queue using Array
│ │ │ ├── CircularQueue_Array.java
│ │ │ └── README.md
│ │ ├── 05. Circular Queue using Linked List
│ │ │ ├── CircularQueue_LinkedList.java
│ │ │ └── README.md
│ │ ├── 06. Dequeue using circular array
│ │ │ ├── Dequeue_CircularArray.java
│ │ │ └── README.md
│ │ └── 07. Priority Queue
│ │ ├── KLargestElement.java
│ │ ├── PriorityQueue.java
│ │ └── README.md
│ ├── 04. Tree
│ │ ├── 01. Introduction to Binary Tree
│ │ │ ├── README.md
│ │ │ └── traversals.cpp
│ │ ├── 02. Binary Search Tree
│ │ │ ├── BinarySearchTree.cpp
│ │ │ ├── BinarySearchTree.java
│ │ │ └── Readme.md
│ │ ├── 03. AVL Tree
│ │ │ ├── AVLTree.cpp
│ │ │ ├── AVLTree.java
│ │ │ └── README.md
│ │ ├── 04. Trie
│ │ │ ├── README.md
│ │ │ ├── Trie_Array.java
│ │ │ └── Trie_HashMap.java
│ │ └── 05. Heap
│ │ ├── Leetcode Questions
│ │ │ ├── 01. Kth Largest Element in an Array #215
│ │ │ │ ├── Kth Largest Element in an Array.md
│ │ │ │ └── Solution.java
│ │ │ └── 02. K Closest Points to Origin #973
│ │ │ ├── K Closest Points to Origin.md
│ │ │ └── Solution.java
│ │ ├── MinHeap.cpp
│ │ ├── MinHeap.java
│ │ └── README.md
│ ├── 05. ArrayList
│ │ └── ArrayList.java
│ ├── 06. HashMap
│ │ ├── MyHashMap.java
│ │ └── README.md
│ ├── 07. Set
│ │ ├── MyHashSet.java
│ │ ├── MyLinkedHashSet.java
│ │ ├── MyTreeSet.java
│ │ ├── README.md
│ │ └── SubarrayWith0Sum.java
│ ├── 08. Graph
│ │ ├── MyGraph.java
│ │ └── README.md
│ ├── 09. Expression Tree
│ │ ├── Exptree.cpp
│ │ └── Exptree.md
├── 02. Algorithms
│ ├── 01. Arrays
│ │ ├── 01. Reverse an Array
│ │ │ ├── README.md
│ │ │ └── ReverseArray.java
│ │ ├── 02. Find the maximum and minimum element in an array
│ │ │ └── README.md
│ │ ├── 03. 215. Kth Largest Element in an Array
│ │ │ ├── brute_force.java
│ │ │ ├── README.md
│ │ │ └── Using_priorityQueue.java
│ │ ├── 04. 75. Sort Colors OR Sort012
│ │ │ ├── brute_force.java
│ │ │ ├── Optimal_Solution.java
│ │ │ ├── README.md
│ │ │ └── Solution.cpp
│ │ ├── 05. Move all negative numbers to one side
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 06. Find the Union and Intersection of Two Arrays
│ │ │ ├── README.md
│ │ │ ├── Union_and_Intersection.java
│ │ │ └── Using_BinarySearch.java
│ │ ├── 07. Cyclically Rotate an Array
│ │ │ ├── Brute_Force.java
│ │ │ ├── Optimal_Solution.java
│ │ │ └── README.md
│ │ ├── 08. Kadane's Algorithm
│ │ │ ├── 53. Maximum Subarray
│ │ │ │ ├── README.md
│ │ │ │ └── Solution.java
│ │ │ └── 918. Maximum Sum Circular Subarray
│ │ │ ├── README.md
│ │ │ ├── Solution2.java
│ │ │ └── Solution.java
│ │ ├── 09. Minimize the Heights II
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 10. 45. Jump Game II
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ └── 11. Jumping on the Clouds
│ │ ├── README.md
│ │ ├── Solution2.java
│ │ └── Solution.java
│ ├── 02. Sorting
│ │ ├── 01. Bubble Sort
│ │ │ ├── BubbleSort.java
│ │ │ └── README.md
│ │ ├── 02. InsertionSort
│ │ │ ├── Insertion_Sort.java
│ │ │ └── README.md
│ │ ├── 03. Selection Sort
│ │ │ ├── README.md
│ │ │ └── Selection_Sort.java
│ │ ├── 04. Quick Sort
│ │ │ ├── Quick_Sort.java
│ │ │ └── README.md
│ │ ├── 05. Merge Sort
│ │ │ ├── Merge_Sort.java
│ │ │ └── README.md
│ │ ├── 06. Count Sort
│ │ │ ├── Count_Sort.java
│ │ │ └── README.md
│ │ ├── 07. Radix Sort
│ │ │ ├── Radix_Sort.java
│ │ │ └── README.md
│ │ ├── 08. Heap Sort
│ │ │ └── README.md
│ │ ├── 09. Cyclic Sort
│ │ │ └── CyclicSort.java
│ │ └── README.md
│ ├── 03. Searching
│ │ ├── 01. Linear Search
│ │ │ ├── Linear_Search.java
│ │ │ ├── Notes.pdf
│ │ │ └── README.md
│ │ ├── 02. Binary Search
│ │ │ ├── Binary_Search.java
│ │ │ ├── Notes.pdf
│ │ │ ├── OrderAgnostic_BinarySearch.java
│ │ │ └── README.md
│ │ └── Problems
│ │ ├── 01. 1295. Find Numbers with Even Number of Digits
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 02. 1672. Richest Customer Wealth
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 03. Floor in a Sorted Array
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 04. Ceil in a Sorted Array
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 05. 744. Find Smallest Letter Greater Than Target
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 06. 34. Find First and Last Position of Element in Sorted Array
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 07. Find position of an element in an infinite sorted array
│ │ │ ├── BS_in_InfiniteArray.java
│ │ │ └── README.md
│ │ ├── 08. 852. Peak Index in a Mountain Array
│ │ │ ├── README.md
│ │ │ ├── Solution1.java
│ │ │ └── Solution2.java
│ │ ├── 09. 162. Find Peak Element
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 10. 1095. Find in Mountain Array
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 11. 33. Search in Rotated Sorted Array
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 12. Find the Rotation Count in Rotated Sorted array
│ │ │ └── README.md
│ │ ├── 13. 410. Split Array Largest Sum
│ │ │ ├── Dry run.pdf
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ ├── 14. 69. Sqrt(x)
│ │ │ ├── README.md
│ │ │ ├── Solution2.java
│ │ │ └── Solution.java
│ │ ├── 15. 278. First Bad Version
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ └── 16. 167. Two Sum II - Input array is sorted
│ │ ├── better_approach.java
│ │ ├── brute-force.java
│ │ ├── optimal_approach.java
│ │ └── README.md
│ ├── 04. Recursion
│ │ ├── Problems
│ │ │ ├── 00. Maximum and Minimum Value in an Array
│ │ │ │ ├── README.md
│ │ │ │ └── Solution.java
│ │ │ ├── 00. Sum triangle from array
│ │ │ │ ├── README.md
│ │ │ │ └── Solution.java
│ │ │ ├── 01. 509. Fibonacci Number
│ │ │ │ └── README.md
│ │ │ ├── 02. 344. Reverse String
│ │ │ │ ├── README.md
│ │ │ │ └── Solution.java
│ │ │ ├── 03.Towers of Hanoi
│ │ │ │ └── Towers_of_Hanoi.cpp
│ │ │ └── 04. Recursive Insertion Sort
│ │ │ ├── README.md
│ │ │ └── Solution.java
│ │ └── README.md
│ ├── 05. Graphs
│ │ └── 01. Depth First Search
│ │ ├── DFS.cpp
│ │ ├── output.png
│ │ └── README.md
│ └── README.md
├── CODE_OF_CONDUCT.md
├── dir_tree.txt
├── LICENSE
├── PREREQUISITES.md
├── README.md
├── SYLLABUS.md
└── Towers_of_Hanoi.cpp