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
│ │ │ │ Resources.md
│ │ │ │ Stack_Array.java
│ │ │ │
│ │ │ ├───2. Stack using LinkList
│ │ │ │ Resources.md
│ │ │ │ Stack_LinkList.java
│ │ │ │
│ │ │ └───3. Stack using Queue
│ │ │ Resources.md
│ │ │ Stack_Queue.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
│ │ │ 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