Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

To prepare for technical interviews at top tech companies like Google, Microsoft, Amazon, and Meta, you should aim to master the following DSA topics. These companies test problem-solving skills, algorithmic thinking, and system design concepts comprehensively. Here's a complete list:


1. Arrays and Strings

  • Basics: Traversing, Searching, Sorting
  • Two Pointers and Sliding Window Techniques
  • Prefix Sum, Difference Arrays
  • Subarray Problems (Maximum Subarray, Kadane’s Algorithm)
  • Merge Intervals
  • Matrix (2D Arrays): Spiral Traversal, Rotate Matrix
  • Important String Problems: Palindromes, Anagram Checks
  • Pattern Matching: KMP, Rabin-Karp, Z Algorithm

2. Recursion and Backtracking

  • Subsets and Subsequence Generation
  • Permutations and Combinations
  • N-Queens, Sudoku Solver
  • Word Search in Grids
  • Rat in a Maze
  • Backtracking Optimization with Pruning

3. Searching and Sorting

  • Binary Search and Variants:
    • Search in Rotated Sorted Array
    • First/Last Occurrence
    • Median of Two Sorted Arrays
  • Sorting Algorithms:
    • QuickSort, MergeSort, HeapSort
    • Counting Sort, Bucket Sort, Radix Sort
  • Applications of Sorting:
    • Meeting Rooms, Minimum Platforms

4. Linked Lists

  • Singly and Doubly Linked Lists
  • Detect and Remove Cycles (Floyd’s Cycle Detection)
  • Merge Two Sorted Linked Lists
  • Reverse Linked List (Iterative and Recursive)
  • Intersection Point, Flattening Linked List

5. Stacks and Queues

  • Classic Problems:
    • Next Greater Element
    • Largest Rectangle in Histogram
    • Min Stack, Max Stack
  • Queue Variants:
    • Circular Queue
    • Deque (Sliding Window Maximum)
    • Priority Queue (Heap)
  • Implementations of Stack and Queue

6. Trees

  • Binary Trees:
    • Traversals (Inorder, Preorder, Postorder, Level Order)
    • Diameter, Height of Tree
    • Serialize and Deserialize a Binary Tree
  • Binary Search Trees:
    • Insertion, Deletion
    • Lowest Common Ancestor
    • Validate BST
  • Tree Views (Top, Bottom, Left, Right)
  • Segment Trees and Fenwick Trees
  • Trie (Prefix Tree): Insert, Search, Autocomplete

7. Graphs

  • Representations: Adjacency Matrix, List
  • Traversal: BFS, DFS
  • Shortest Path Algorithms:
    • Dijkstra, Bellman-Ford, Floyd-Warshall
  • Minimum Spanning Tree: Kruskal, Prim
  • Detect Cycles (Directed/Undirected Graphs)
  • Topological Sorting
  • Strongly Connected Components (Tarjan, Kosaraju)
  • Bipartite Graph Check
  • Network Flow: Ford-Fulkerson, Edmonds-Karp

8. Greedy Algorithms

  • Activity Selection Problem
  • Huffman Encoding
  • Minimum Spanning Tree
  • Fractional Knapsack
  • Job Scheduling
  • Gas Station Problem

9. Dynamic Programming (DP)

  • Basic Problems:
    • Fibonacci, Climbing Stairs
    • Knapsack Problem (0/1, Unbounded)
  • Intermediate Problems:
    • Longest Common Subsequence, Longest Palindromic Substring
    • Longest Increasing Subsequence
    • Matrix Chain Multiplication
    • DP on Grids (Unique Paths, Minimum Path Sum)
  • Advanced Problems:
    • DP on Trees
    • DP with Bitmasks
    • Egg Dropping Problem

10. Divide and Conquer

  • Sorting Algorithms: MergeSort, QuickSort
  • Binary Search Applications
  • Closest Pair of Points
  • Maximum Subarray (Kadane's Variant)

11. Bit Manipulation

  • Basics: AND, OR, XOR, NOT, Left/Right Shift
  • Applications:
    • Count Set Bits
    • Check Power of Two
    • Subsets Using Bits
    • XOR Problems (Single Number, Missing Number)

12. Disjoint Set Union (Union-Find)

  • Basics:
    • Path Compression, Union by Rank
  • Applications:
    • Cycle Detection
    • Kruskal’s Algorithm
    • Connected Components in Graphs

13. Advanced Data Structures

  • Heap (Min-Heap, Max-Heap)
  • Hash Tables and Hash Maps
  • Bloom Filters
  • Suffix Arrays and Trees
  • LRU Cache Implementation
  • Persistent Data Structures

14. String Algorithms

  • Pattern Matching: KMP, Rabin-Karp
  • Z Algorithm
  • Manacher’s Algorithm (Longest Palindromic Substring)
  • Suffix Tree and Suffix Array

15. Mathematical Algorithms

  • Modular Arithmetic (Modular Exponentiation, Modular Inverse)
  • Euclidean Algorithm (GCD/LCM)
  • Sieve of Eratosthenes (Prime Numbers)
  • Combinatorics (nCr, Permutations)
  • Fast Fourier Transform (FFT)

16. Game Theory

  • Grundy Numbers
  • Nim Game
  • Minimax Algorithm

17. Miscellaneous

  • Sliding Window Problems
  • Two Pointers Technique
  • Interval Problems
  • Design Problems (LRU Cache, Rate Limiter)
  • Randomized Algorithms (Reservoir Sampling)

System Design (Optional but Important for Senior Roles)

  • Basics of Distributed Systems
  • Caching, Load Balancing, Database Sharding
  • Consistent Hashing, CAP Theorem
  • Designing Scalable Systems (Rate Limiter, URL Shortener, Chat Application)

Prioritization:

  1. Master the Foundational Topics: Arrays, Strings, Recursion, Searching/Sorting, Linked Lists.
  2. Focus on Graphs, Trees, and DP, as they are heavily tested.
  3. Practice String Algorithms, Sliding Window, and Backtracking for edge-case scenarios.

Let me know if you'd like a structured roadmap to cover these topics!

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages