12 Week Programme - Leetcode
12 Week Programme - Leetcode
❏ Lists
❏ Design Linked List
❏ Design Skiplist
❏ Stacks
❏ Implement Stack using Queues
❏ Design a Stack With Increment Operation
❏ LRU Cache
❏ Min Stack
❏ Max Stack
❏ Dinner Plate Stacks
❏ Implement Queue using Stacks
❏ Queue
❏ Design Circular Queue
❏ Hashtable
❏ Design HashMap
❏ Design HashSet
❏ BST
❏ Binary Search Tree Iterator
❏ Serialize and Deserialize BST
❏ Heaps
❏ Design Twitter
❏ Kth Largest Element in a Stream
❏ Tries (PrefixTree, suffixTree)
❏ Implement Trie (Prefix Tree)
❏ Add and Search Word - Data structure design
❏ Red Black Tree
❏ Find Median from Data Stream
❏ Count of Range Sum
❏ Fibonacci Heaps
❏ Fibonacci Heaps
❏ Disjoint Sets
❏ Review of two popular approaches, Disjoint Sets and DFS
❏ Interval Trees/Segment Tree
❏ Lazy Dynamic Segment Tree - A general template
❏ A Recursive approach to Segment Trees, Range Sum Queries & Lazy Propagation
❏ Other Tree Data Structures(Graphs)
❏ Serialize and Deserialize N-ary Tree
❏ Encode N-ary Tree to Binary Tree
❏ Sorting - 2 Days
❏ Selection Sort - Merge Sorted Array
❏ Bubble Sort - Sort Colors
❏ Insertion Sort - Insertion Sort List
❏ Merge Sort - Sort an Array
❏ Quick Sort
❏ Kth Largest Element in an Array
❏ K Closest Points to Origin
❏ Counting Sort - Relative Sort Array
❏ Tree sort - Convert Sorted List to Binary Search Tree
❏ Bucket Sort - Top K Frequent Elements
❏ Radix Sort - Maximum Gap
❏ Topological sort - Covered in Graphs
❏ Divide-and-Conquer - 2 Days
❏ The maximum-subarray problem - Maximum Subarray
❏ Strassen’s algorithm for matrix multiplication - Divide and Conquer | Set 5
(Strassen's Matrix Multiplication)
❏ The substitution method for solving recurrences
❏ The recursion-tree method for solving recurrences
❏ The master method for solving recurrences
❏ Matrix Operations
❏ Linear Programming
❏ Polynomials - DFT, FFT
❏ Computational Geometry
❏ Line-segment properties
❏ Determining whether any pair of segments intersects
❏ Finding the convex hull - Erect the Fence, The Skyline Problem
❏ Finding the closest pair of points - K Closest Points to Origin
❏ GCD and LCM
❏ X of a Kind in a Deck of Cards
❏ Greatest Common Divisor of Strings
❏ Nth Magical Number
❏ Ugly Number III
❏ Prime Factorization and Divisors
❏ Largest Component Size by Common Factor
❏ 2 Keys Keyboard
❏ Fibonacci Numbers
❏ Length of Longest Fibonacci Subsequence
❏ Split Array into Fibonacci Sequence
❏ Find the Minimum Number of Fibonacci Numbers Whose Sum Is K
❏ Catalan Numbers - Unique Binary Search Trees
❏ Modular Arithmetic
❏ Euler Totient Function
❏ nCr Computations
❏ Set Theory
❏ Factorial
❏ Last Substring in Lexicographical Order
❏ Snakes and Ladders
❏ Factor Combinations
❏ Path With Maximum Minimum Value
❏ Number of Closed Islands
❏ Prime numbers and Primality Tests
❏ Prime Arrangements
❏ K-th Smallest Prime Fraction
❏ Sieve Algorithms
❏ Count Primes
❏ Divisibility and Large Numbers
❏ Series
❏ Number Digit
❏ Triangles
❏ Triangle
❏ Valid Triangle Number
Networks - ( 1 Week )
Leetcode
❏ Network Topology, OSI Architecture
❏ TCP/IP models
❏ TCP and UDP
❏ Firewall, DNS, Domains, workgroups
❏ Protocols i.e ICMP
OS - ( 1 week )
Operating System Tutorial
Shared Memory Systems
❏ Cache
❏ Multithreading
❏ Producers-consumers problem
❏ Dining philosophers problem
❏ Cigarette smokers problem
❏ Readers–writers problem
❏ Web Crawler Multithreaded
❏ Scheduling algorithms
❏ Deadlock
❏ Virtual Memory
❏ Mutex and semaphore
❏ Kernels
❏ Paging
Software Design Principles - ( 2 weeks )
System Design Primer
👨🏫
Challenges with distributed systems
Microservices Design Guide - Platform Engineer
TO READ:
Domain Driven Design (DDD) | Bounded Context (BC) | Polyglot Persistence (PP)|
Command and Query Responsibility Segregation (CQRS) | Command Query Separation
(CQS) | Event-Sourcing (ES) | CAP Theorem | Eventual Consistency | Twelve-Factor App |
SOLID Principles |
REFERENCES
Introduction to Algorithms - Cormen
Leetcode