1.
Rotate Array, Reverse Words in a String
2. Evaluate Reverse Polish Notation (Stack)
3. Isomorphic Strings
4. Word Ladder (BFS), Word Ladder II (BFS)
5. Median of Two Sorted Arrays
6. Kth Largest Element in an Array
7. Wildcard Matching, Regular Expression Matching
8. Merge Intervals, Insert Interval
9. Two Sum, Two Sum II, Two Sum III, 3Sum, 4Sum
10. Sum Closest
11. String to Integer
12. Merge Sorted Array
13. Valid Parentheses
14. Longest Valid Parentheses
15. Implement strStr()
16. Minimum Size Subarray Sum
17. Search Insert Position
18. Longest Consecutive Sequence
19. Valid Palindrome
20. ZigZag Conversion
21. Add Binary
22. Length of Last Word
23. Triangle
24. Contains Duplicate: I, II, III
25. 25) Remove Duplicates from Sorted Array: I, II, Remove
Element , Move
26. Zeroes
27. 27) Longest Substring Without Repeating Characters
28. Longest Substring that contains 2 unique characters [Google]
29. Substring with Concatenation of All Words
30. Minimum Window Substring
31. Find Minimum in Rotated Sorted Array: I, II
32. Search in Rotated Array:I, II
33. Min Stack
34. Majority Element: I, II
35. Bulls and Cows
36. Largest Rectangle in Histogram
37. Longest Common Prefix [Google]
38. Largest Number
39. Simplify Path
40. Compare Version Numbers
41. Gas Station
42. Pascal's Triangle: I, II
43. Container With Most Water
44. Candy [Google]
45. Trapping Rain Water
46. 46) Count and Say
47. 47) Search for a Range
48. 48) Basic Calculator, Basic Calculator II
49. Group Anagrams
50. Shortest Palindrome
51. Rectangle Area
52. Summary Ranges
53. Increasing Triplet Subsequence
54. Get Target Using Number List And Arithmetic Operations
55. Reverse Vowels of a String
56. Flip Game, Flip Game II
57. Missing Number, Find the duplicate number, First Missing Positive
58. Valid Anagram, Group Shifted Strings
59. Top K Frequent Elements
60. Find Peak Element
61. Word Pattern, Word Pattern II
62. H-Index , H-Index II
63. Palindrome Pairs
64. 64) One Edit Distance
65. 65) Scramble String
66. 66) First Bad Version
67. Integer to English Words
68. Text Justification
69. Remove Invalid Parentheses
70. Intersection of Two Arrays, Intersection of Two Arrays II
71. Sliding Window Maximum, Moving Average from Data Stream
72. Guess Number Higher or Lower
73. Set Matrix Zeroes
74. 2) Spiral Matrix
75. 2) Spiral Matrix II
76. 3) Search a 2D Matrix
77. 3) Search a 2D Matrix II
78. Rotate Image [Palantir]
79. Valid Sudoku
80. 6) Minimum Path Sum (DP) [Google]
81. Unique Paths (DP) [Google]
82. 7) Unique Paths II (DP)
83. 8) Number of Islands (DFS/BFS), Number of Islands II (Disjoint
Set), Number
84. of Connected Components in an Undirected Graph
85. 9) Surrounded Regions (BFS)
86. 10) Maximal Rectangle
87. 10) Maximal Square
88. 11) Word Search (DFS)
89. 11) Word Search II
90. 13) Range Sum Query 2D – Immutable
91. 14) Longest Increasing Path in a Matrix (DFS)
92. 15) Shortest Distance from All Buildings
93. 16) Game of Life
94. 17) Paint House, Paint House II
95. 18) Sudoku Solver (DFS)
96. 19) Walls and Gates (DFS/BFS)
97. 20) Tic-Tac-Toe
98. 21) Best Meeting PointClassic Problems:
99. 0) Implement a Stack Using an Array
100. 1) Add Two Numbers
101. 2) Reorder List
102. 3) Linked List Cycle
103. 4) Copy List with Random Pointer
104. 5) Merge Two Sorted Lists
105. 6) Odd Even Linked List
106. 7) Remove Duplicates from Sorted List
107. 7) Remove Duplicates from Sorted List II
108. 8) Partition List
109. 9) LRU Cache
110. 10) Intersection of Two Linked Lists
111. 11) Remove Linked List Elements
112. 12) Swap Nodes in Pairs
113. 13) Reverse Linked List, Reverse Linked List II, Print Linked List in
Reversed
114. Order
115. 14) Remove Nth Node From End of List (Fast-Slow Pointers)
116. 15) Implement Stack using Queues
117. 15) Implement Queue using Stacks
118. 16) Palindrome Linked List
119. 17) Implement a Queue using an Array
120. Delete Node in a Linked List
121. Reverse Nodes in k-Group4.1 Tree1) Binary Tree Traversal:Preorder,
122. Inorder, Postorder, Level Order, Level Order II, Vertical Order
123. Invert Binary Tree
124. Kth Smallest Element in a BST
125. Binary Tree Longest Consecutive Sequence
126. Validate Binary Search Tree
127. 6) Flatten Binary Tree to Linked List
128. 7) Path Sum (DFS or BFS)
129. 7) Path Sum II (DFS)
130. 8) Construct Binary Tree from Inorder and Postorder Traversal
131. 8) Construct Binary Tree from Preorder and Inorder Traversal
132. 9) Convert Sorted Array to Binary Search Tree [Google]
133. 10) Convert Sorted List to Binary Search Tree [Google]
134. 11) Minimum Depth of Binary Tree
135. 12) Binary Tree Maximum Path Sum *
136. 13) Balanced Binary Tree
137. 14) Symmetric Tree
138. 15) Binary Search Tree Iterator
139. 16) Binary Tree Right Side View
140. 17) Lowest Common Ancestor of a Binary Search Tree
141. 18) Lowest Common Ancestor of a Binary Tree
142. 19) Verify Preorder Serialization of a Binary Tree
143. 20) Populating Next Right Pointers in Each Node
144. 21) Populating Next Right Pointers in Each Node II
145. 21) Unique Binary Search Trees (DP)
146. 21) Unique Binary Search Trees II (DFS)
147. 22) Sum Root to Leaf Numbers (DFS)
148. 23) Count Complete Tree Nodes
149. 24) Closest Binary Search Tree Value
150. 25) Binary Tree Paths
151. 26) Maximum Depth of Binary Tree
152. 27 Recover Binary Search Tree
153. 28) Same Tree
154. 29) Serialize and Deserialize Binary Tree
155. 30) Inorder Successor in BST
156. 31) Find Leaves of Binary Tree
157. 32) Largest BST Subtree4.2 Heap1) Merge k sorted arrays [Google]
158. 2) Merge k Sorted Lists *
159. 3) Find Median from Data Stream
160. 4) Meeting Rooms II, Meeting Rooms
161. 5) Range Addition4.3 Trie1) Implement Trie (Prefix Tree)
162. Add and Search Word - Data structure design (DFS)4.4 Segment
Tree1)
163. Range Sum Query - Mutable
164. The Skyline ProblemSorting1) Mergesort
165. Quicksort
166. InsertionSort.
167. Maximum Gap (Bucket Sort)
168. Sort Colors (Counting Sort)
169. Insertion sort
170. Selection sort
171. Bubble sortMerge SortQuicksortBinary SearchBreadth First Search
(BFS) | Iterative & Recursive ImplementationDepth First Search (DFS) |
Iterative & Recursive ImplementationLee algorithm | Shortest path in a
MazeFlood fill AlgorithmFloyd’s Cycle Detection AlgorithmMaximum
subarray problem (Kadane’s algorithm)Longest Increasing Subsequence
172. Inorder, Preorder, Postorder
173. Graphs AlgorithmnsBreadth First Search (BFS)Depth First Search
(DFS)Shortest Path from source to all vertices **Dijkstra**Shortest Path
from every vertex to every other vertex **Floyd Warshall**Minimum
Spanning tree **Prim**Minimum Spanning tree **Kruskal**Topological
SortJohnson’s algorithmArticulation Points (or Cut Vertices) in a
GraphBridges in a graph
174. Dynamic ProgrammingLongest Common SubsequenceLongest
Increasing SubsequenceEdit DistanceMinimum PartitionWays to Cover a
DistanceLongest Path In MatrixSubset Sum ProblemOptimal Strategy for
a Game0-1 Knapsack ProblemAssembly Line Scheduling
175. Searching and sortingBinary SearchQuick SortMerge SortOrder
StatisticsKMP algorithmRabin karpZ’s algorithmAho Corasick String
MatchingCounting SortManacher’s algorithm: Part 1, Part 2 and Part 3
176. 1. Arrays
Know how to use arrays. You will use them a lot. Learn how to make
them grow dynamically (for programming languages like C).Know how
to use a standard library array (example: vector)Learn to use strings
(they are arrays).Know how to sort them with two good sorting
algorithms (QuickSort and MergeSort)Learn to search in an array.
First linear search and then binary search.Learn QuickSelect, it will
be useful.
177. 2. Linked Lists
Learn to create a linked list. Know the basic operations: insert, print,
delete.You won't use linked lists a lot in the real word, but having a solid
understanding of how they work will be of great use.Know different
versions of linked lists: circular and double, for example.Know the
advantages of a linked list vs an array
178. 3-4. Stacks and Queues
Learn to implement stacks and queues with arrays and lists. Know the
advantages.For stacks, learn postfix conversion and evaluation. Also
learn parenthesis matching. This will help you master stacks.For
queues, you should try to do some multithreading programming.
179. 5. Trees
If you did a proper work with linked lists, trees should feel a little
natural.Learn to implement a binary tree (insert, delete, search).Know
the basic properties of a tree.Learn at least one self-balancing tree
(AVL, Splay, Red-Black).I like a lot the Trie data structure. It has
some pretty nice applications.Another data structure used a lot is
the heap.Learn Breadth First Search and Depth First Search.
180. 6. Hashmap
Hashmap is a really useful data structure.Learn how to use them and
how to implement one (so learn how to do a neat hashing function).
181. 7. Graphs
Learn what is a graph and how to implement them with a matrices and
lists.Learn how to use them and how to implement one (so learn how to
do a neat hashing function).Learn how to find shortest path in a
graph.Implement DFS and BFS.
182. 8-10. Algorithms
As I mentioned before, learn sorting and searching algorithms.Learn Big
O notation.Search: MergeSort, QuickSort, HeapSort. Diskstra. You
won't use this, but it will give you a better understanding of
graphs.There are other nice algorithms that you might want to learn.
Some are textbook algorithms (reverse string, substring, etc).
I hope this helps.
183. Array data structure
184. Sparse arrayLinked list
185. Doubly linked listStack (abstract data type)
186. Queue (abstract data type)
187. Double-ended queueBinary tree
188. TreapRed–black treeHeap (data structure)
String (computer science) and
189. Trie
B tree
190. B+ treeGraph (abstract data type)
191. Hash table
192. Associative array
Linear searchBinary search algorithm
193. Ternary search
Merge algorithm
194. Merge sort
Insertion sort
195. Timsort
Heapsort
196. Quicksort Selection algorithmGraph traversal
197. Dijkstra's algorithm
198. Bellman–Ford algorithm
Topological sorting
Disjoint-set data structure
199. Minimum spanning tree
Flow network
200. http://www.iarcs.org.in/inoi/online-study-material/topics/