01Learn the basics

1.1Things to Know in C++/Java/Python or any language

1.2Build-up Logical Thinking

1.3Learn STL/Java-Collections or similar thing in your language

  • C++ STLC++, Introduction to DSA
  • Java CollectionsJava, Introduction to DSA

1.4Know Basic Maths

1.5Learn Basic Recursion

1.6Learn Basic Hashing

02Learn Important Sorting Techniques

2.1Sorting-I

2.2Sorting-II

03Solve Problems on Arrays [Easy -> Medium -> Hard]

3.1Easy

3.2Medium

3.3Hard

04Binary Search [1D, 2D Arrays, Search Space]

4.1BS on 1D Arrays

4.2BS on Answers

4.3BS on 2D Arrays

05Strings [Basic and Medium]

5.1Basic and Easy String Problems

5.2Medium String Problems

  • Sort Characters by frequencyArrays, Hashing, Data Structures
  • Maximum Nesting Depth of ParanthesisString, Stack
  • Roman Number to Integer and vice versaHashing, Maths, String
  • Implement AtoiString, Data Structures
  • Count Number of SubstringsString, Data Structures
  • Longest Palindromic Substring[Do it without DP]String, Data Structures
  • Sum of Beauty of all substringHashing, Data Structures, String
  • Reverse Every Word in A StringTwo Pointer, String, Data Structures

06Learn LinkedList [Single LL, Double LL, Medium, Hard Problems]

6.1Learn 1D LinkedList

6.2Learn Doubly LinkedList

6.3Medium Problems of LL

6.4Medium Problems of DLL

6.5Hard Problems of LL

07Recursion [PatternWise]

7.1Get a Strong Hold

  • Recursive Implementation of atoi()String, Recursion, Data Structures
  • Pow(x, n)Maths, Recursion
  • Count Good numbersMaths, Data Structures
  • Sort a stack using recursionStack, Sorting, Data Structures
  • Reverse a stack using recursionStack, Recursion, Data Structures

7.2Subsequences Pattern

7.3Trying out all Combos / Hard

08Bit Manipulation [Concepts & Problems]

8.1Learn Bit Manipulation

8.2Interview Problems

8.3Advanced Maths

09Stack and Queues [Learning, Pre-In-Post-fix, Monotonic Stack, Implementation]

9.1Learning

9.2Prefix, Infix, PostFix Conversion Problems

9.3Monotonic Stack/Queue Problems [VVV. Imp]

9.4Implementation Problems

10Sliding Window & Two Pointer Combined Problems

10.1Medium Problems

10.2Hard Problems

11Heaps [Learning, Medium, Hard Problems]

11.1Learning

11.2Medium Problems

11.3Hard Problems

  • Design twitterHashing, Linked List, Heap
  • Connect `n` ropes with minimal costArrays, Heap, Data Structures
  • Kth largest element in a stream of running integersBinary Search Tree, Heap, Data Structures
  • Maximum Sum CombinationArrays, Sorting, Heap, Data Structures
  • Find Median from Data StreamTwo Pointer, Sorting, Heap, Data Structures
  • K most frequent elementsArrays, Hashing, Sorting, Heap, Data Structures

12Greedy Algorithms [Easy, Medium/Hard]

12.1Easy Problems

12.2Medium/Hard

13Binary Trees [Traversals, Medium and Hard Problems]

13.1Traversals

13.2Medium Problems

13.3Hard Problems

14Binary Search Trees [Concept and Problems]

14.1Concepts

14.2Practice Problems

15Graphs [Concepts & Problems]

15.1Learning

15.2Problems on BFS/DFS

15.3Topo Sort and Problems

15.4Shortest Path Algorithms and Problems

15.5MinimumSpanningTree/Disjoint Set and Problems

15.6Other Algorithms

16Dynamic Programming [Patterns and Problems]

16.1Introduction to DP

16.21D DP

16.32D/3D DP and DP on Grids

16.4DP on Subsequences

16.5DP on Strings

16.6DP on Stocks

16.7DP on LIS

16.8MCM DP | Partition DP

16.9DP on Squares

17Tries

17.1Theory

17.2Problems

18Strings

18.1Hard Problems