Open ShoaibKakal opened 1 year ago
Progress Tracker DSA [ ] Complete Git & GitHub Course [ ] Introduction to Programming [ ] Types of languages [ ] Memory management [ ] Flow of the program [ ] Flowcharts [ ] Pseudocode [ ] Introduction to Java [ ] Introduction [ ] How it works [ ] Setup Installation [ ] Input and Output in Java [ ] Conditionals & Loops in Java [ ] if else [ ] loops [ ] Switch statements [ ] Data types [ ] Coding best practices [ ] Functions [ ] Introduction [ ] Scoping in Java [ ] Shadowing [ ] Variable Length Arguments [ ] Overloading [ ] Arrays [ ] Introduction [ ] Memory management [ ] Input and Output [ ] ArrayList Introduction [ ] Sorting [ ] Insertion Sort [ ] Selection Sort [ ] Bubble Sort [ ] Cyclic Sort (Merge sort etc after recursion) [ ] Searching [ ] Linear Search [ ] Binary Search [ ] Modified Binary Search [ ] Binary Search Interview questions [ ] Binary Search on 2D Arrays [ ] Pattern questions [ ] Strings [ ] Introduction [ ] How Strings work [ ] Comparison of methods [ ] Operations in Strings [ ] StringBuilder in java [ ] Maths for DSA [ ] Introduction [ ] Complete Bitwise Operators [ ] Prime numbers [ ] HCF / LCM [ ] Sieve of Eratosthenes [ ] Newton's Square Root Method [ ] Number Theory [ ] Euclidean algorithm [ ] Space and Time Complexity Analysis [ ] Introduction [ ] Comparion of various cases [ ] Solving Linear Recurrence Relations [ ] Solving Divide and Conquer Recurrence Relations [ ] Big-O, Big-Omega, Big-Theta Notations [ ] Get equation of any relation easily - best and easiest approach [ ] Complexity discussion of all the problems we do [ ] Space Complexity [ ] Memory Allocation of various languages [ ] NP Completeness and Hardness [ ] Recursion [ ] Introduction [ ] Why recursion? [ ] Flow of recursive programs - stacks [ ] Convert recursion to iteration [ ] Tree building of function calls [ ] Tail recursion [ ] Sorting: [ ] Merge Sort [ ] Quick Sort [ ] Backtracking [ ] Sudoku Solver [ ] N-Queens [ ] N-Knights [ ] Maze problems [ ] Recursion String Problems [ ] Recursion Array Problems [ ] Recursion Pattern Problems [ ] Subset Questions [ ] Recursion - Permutations, Dice Throws etc Questions [ ] Object Oriented Programming [ ] Introduction [ ] Classes & its instances [ ] this keyword in Java [ ] Properties [ ] Inheritance [ ] Abstraction [ ] Polymorphism [ ] Encapsulation [ ] Overloading & Overriding [ ] Static & Non-Static [ ] Access Control [ ] Interfaces [ ] Abstract Classes [ ] Singleton Class [ ] final, finalize, finally [ ] Exception Handling [ ] Linked List [ ] Introduction [ ] Singly and Doubly Linked List [ ] Circular Linked List [ ] Fast and slow pointer [ ] Cycle Detection [ ] Reversing of LinekdList [ ] Linked List Interview questions [ ] Stacks & Queues [ ] Introduction [ ] Interview problems [ ] Push efficient [ ] Pop efficient [ ] Queue using Stack and Vice versa [ ] Circular Queue [ ] Dynamic Programming [ ] Introduction [ ] Recursion + Recursion DP + Iteration + Iteration Space Optimized [ ] Complexity Analysis [ ] 0/1 Knapsack [ ] Subset Questions [ ] Unbounded Knapsack [ ] Subseq questions [ ] String DP [ ] Trees [ ] Introduction [ ] Binary Trees [ ] Binary Search Trees [ ] DFS [ ] BFS [ ] AVL Trees [ ] Segment Tree [ ] Fenwick Tree / Binary Indexed Tree [ ] Heaps [ ] Introduction [ ] Theory [ ] Priority Queue [ ] Two Heaps Method [ ] k-way merge [ ] top k elements [ ] interval problems [ ] Hashmaps [ ] Introduction [ ] Theory - how it works [ ] Comparisons of various forms [ ] Limitations and how to solve [ ] Map using LinkedList [ ] Map using Hash [ ] Chaining [ ] Probing [ ] Huffman-Encoder [ ] Tries [ ] Graphs [ ] Introduction [ ] BFS [ ] DFS [ ] Working with graph components [ ] Minimum Spanning Trees [ ] Kruskal Algorithm [ ] Prims Algorithm [ ] Dijkstra’s shortest path algorithm [ ] Topological Sort [ ] Bellman ford [ ] A* pathfinding Algorithm [ ] Greedy Algorithms Advanced concepts apart from interviews [ ] Fast IO [ ] File handling [ ] Bitwise + DP [ ] Extended Euclidean algorithm [ ] Modulo Multiplicative Inverse [ ] Linear Diophantine Equations [ ] Matrix Exponentiation [ ] Mathematical Expectation [ ] Catalan Numbers [ ] Fermat’s Theorem [ ] Wilson's Theorem [ ] Euler's Theorem [ ] Lucas Theorem [ ] Chinese Remainder Theorem [ ] Euler Totient [ ] NP-Completeness [ ] Multithreading [ ] Fenwick Tree / Binary Indexed Tree [ ] Square Root Decomposition
[ ] Introduction to Programming
[ ] Flow of the program
[ ] Introduction to Java
[ ] Functions
[ ] Arrays
[ ] Searching
[ ] Strings
[ ] Maths for DSA
[ ] Space and Time Complexity Analysis
[ ] Recursion
[ ] Sorting:
[ ] Backtracking
[ ] Object Oriented Programming
[ ] Properties
[ ] Linked List
[ ] Stacks & Queues
[ ] Dynamic Programming
[ ] Trees
[ ] Heaps
[ ] Hashmaps
[ ] Graphs